我想使用微軟的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