我想使用微软的Visual C++编译器10.0(86)编译遗留代码Qt Creator中,并且我得到了经典的错误:设置字符从另一个IDE(Qt Creator中)为MSVC编译器设置
cannot convert parameter 1 from 'char *' to 'LPCWSTR'
而不是编辑的代码(东西我不应该这样做,这是一个第三方SDK),解决的办法是去到Visual Studio一般设置和更改字符集
'Use Multi-byte character set'
但是,我没有使用Visual Studio IDE并且没有该设置。所以我需要知道在代码/编译方面实际做了什么设置。它是否设置了编译器标志或#define?我如何在Qt Creator中实现同样的功能?
酷感谢,该页面在这里跟你说什么 证实http://msdn.microsoft.com /en-us/library/ey142t48(v=vs.80).aspx – oggmonster
看来Qt自动定义了UNICODE for你,并且没有办法从你的项目中取消定义它。您可以将/ D“_MBCS”添加到QMAKE_CXXFLAGS qmake变量中,但/ D“UNICODE”和/ D“_MBCS”最终作为参数传递给cl。 要使多字节字符集成为Qt Creator中的默认字符集,您必须编辑您的MSVC设置的qmake.conf文件,我的位于: C:\ QtSDK \ Desktop \ Qt \ 4.8.0 \ msvc2010 \ mkspecs \ win32-msvc2010 在定义行上,您需要删除UNICODE并添加_MBCS。不是一个很好的解决方法,但Qt Creator不会给你一个像Visual Studio那样改变UI的选项。 – oggmonster
@oggmonster。我能够删除UNICODE定义并添加_MBCS添加到我的.pro文件以下内容。 DEFINES - = UNICODE DEFINES + = _MBCS – eatyourgreens