[英]How to get Visual Studio 2013 to not stop the build on errors (C++)
[英]Visual Studio 2013 - C++ Errors
一些奇怪的事情發生了。 當我在Dev-C ++中編譯程序時,它沒有錯誤,並且編譯干凈。 當我將其放在Visual Studio中時,出現很多錯誤:
Error 1 error C2371: 'MailRecipient' : redefinition; different basic types
Error 2 error C3861: 'GetModuleFileName': identifier not found
Error 3 error C2664: 'HRESULT SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR)' : cannot convert argument 5 from 'char [260]' to 'LPWSTR'
Error 4 error C3861: 'CopyFile': identifier not found
Error 5 error C2664: 'BOOL SetFileAttributesW(LPCWSTR,DWORD)' : cannot convert argument 1 from 'char [512]' to 'LPCWSTR'
Error 6 error C2664: 'HRESULT SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR)' : cannot convert argument 5 from 'char [260]' to 'LPWSTR'
Error 7 error C2664: 'BOOL SetFileAttributesW(LPCWSTR,DWORD)' : cannot convert argument 1 from 'char []' to 'LPCWSTR'
Error 8 error C2664: 'LSTATUS RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY)' : cannot convert argument 2 from 'const char [46]' to 'LPCWSTR'
Error 9 error C2664: 'HRESULT SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR)' : cannot convert argument 5 from 'char [260]' to 'LPWSTR'
Error 10 error C2664: 'LSTATUS RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,const BYTE *,DWORD)' : cannot convert argument 2 from 'const char [9]' to 'LPCWSTR'
所有這些都可以在Dev-C ++上運行。 我需要在VS中進行編譯,因為我想從POCO庫中添加一些東西,具有諷刺意味的是,它無法在Dev-C ++中進行編譯...有什么幫助嗎?
默認情況下,Visual Studio項目定義UNICODE
。
您可以在項目設置中關閉Unicode,也可以重新編寫程序以使用基於wchar_t
的字符串(例如,使用L"Blah"
而不是"Blah"
)。
或者,您可以在包含<windows.h>
每個位置之前#undef UNICODE
。
項目中的#include語句似乎存在一些問題。 您需要弄清楚為什么要重新定義MailRecipient。 您可能必須在Visual Studio中調整某些項目設置。
另外,如第一個答案所示,Visual Studio默認情況下使用UNICODE,這將導致它調用Windows API函數的寬字符串版本。 您可以使用std :: widen函數將字符串轉換為僅用於Windows API調用。 有關此主題的更多信息,請參見utf8everywhere.org 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.