我正在尝试在Visual Studio 2017 C ++控制台应用程序中编译以下C ++代码。
GUID patchId;
auto resa = UuidFromString("905EAA46-C9E3-4B5C-8133-0000165A4DDD", &patchId);
它给了我下面的编译错误。
错误C2664'RPC_STATUS UuidFromStringW(RPC_WSTR,UUID *)': 无法将参数1从'const char [37]'转换为'RPC_WSTR'
如何解决此错误?
答案 0 :(得分:2)
系统平台标头中似乎存在错误。如果将wchar_t
定义为与unsigned short
不同的类型(应该这样做),则https://social.msdn.microsoft.com/Forums/vstudio/en-US/d1b4550a-407b-4c09-8560-0ab9ef6ff754/error-while-compiling-c2664?forum=vclanguage会插入; RPC_WSTR
是unsigned short*
,应为wchar_t*
。
执行以下操作:
UuidFromStringW((RPC_WSTR)L"905EAA46-C9E3-4B5C-8133-0000165A4DDD", &patchId);
那真是可怕。