原文:
在从VS2015 QT +WTL ,出现了一个莫名的错误,无法编译通过,使用各种办法无效。就Gogle找吧,试了网上各种办法,基本无效。
上天不负有心人
终于在一篇文章中找到办法。
就是在qmake添加
win32: QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStrings
win32: QMAKE_CFLAGS_RELEASE -= -Zc:strictStrings
win32: QMAKE_CFLAGS -= -Zc:strictStrings
win32: QMAKE_CXXFLAGS -= -Zc:strictStrings
原文:
还有补充一点,类似
#ifdef Q_OS_WIN
#include <atlbase.h>
#include <atlapp.h>
#include <atlgdi.h>
#include <atldlgs.h>
#endif
之类的代码,引用顺序要放在 #include <QWidget> 之类的之后,否则宏 Q_OS_WIN 无效,导致atl系列的头文件无法加载,编译出错。

本文解决在VS2015环境下使用QT与WTL进行项目开发时遇到的C2440错误。通过在qmake中添加特定参数解决了'default argument'无法从'const wchar_t [1]'转换到'BSTR'的问题,并指出atl系列头文件引用顺序的重要性。
2066





