官方下载现在仅包括VS 2010的Qt库5.0.0.我在VS 2012 Express中尝试了它们,但收到错误消息"错误:LNK2038:检测到'_MSC_VER'不匹配:值'1600'与值'1700'不匹配......"
我是否必须在VS 2012中安装VS 2010或编译Qt5的完整源代码?
更新:我的IDE是Qt Creator 2.6.1.我只在VS 2012中使用C++编译器,因为在官方下载中还没有用于minGW的Qt库5.0.0 .
UPDATE-2(2013-1-1):今天看到它,官方博客说:
我们还在为5.0系列做一些事情.我们有想要解决的错误.我们目前没有MinGW的二进制包(因为WebKit尚未使用它)和MSVC 2012(您需要从源代码编译),我们将尽快提供这些包.目前的计划是在1月底之前的某个时间发布第一个补丁级别5.0.1.
UPDATE-3(2013年1月31日): 那说到最后,但只增加的Qt 5.0.1 MinGW的4.7.
UPDATE-4(2013-7-06):经过漫长的等待,Qt 5.1.0 for Windows 32-bit(VS 2012,511 MB)增加了.
我想在新项目中使用C++ 11 Smart Pointers,并遇到问题.许多当前项目仍在其接口中使用原始指针作为参数,并且没有智能指针的接口,例如QMainWindow :: setCentralWidget.
为了保持类型一致,我必须get()
像这段一样传递存储的指针:
QMainWindow win;
std::shared_ptr<QWidget> scrollArea{ std::make_shared<QScrollArea>() };
// QScrollArea is a derived class of QWidget.
win.setCentralWidget(scrollArea.get());
Run Code Online (Sandbox Code Playgroud)
但我无法确定Qt中的其他方法是否delete
对存储的指针执行运算符scrollArea
.
如果Qt中的某些方法可以导致内存泄漏或其他问题吗?
我检查了最新的C++标准CD,但没有发现任何内容.似乎这是一个未定义的行为.
如果这样做是一个未定义的行为并且很危险,是否有一种安全的方法可以使用带有原始指针接口的智能指针?
我想observer_ptr
在我的项目中使用,但本文只定义了界面,而不是完整的实现.现在是否有开源实现,或者我必须自己完成?