![](/img/trans.png)
[英]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.