无法从字符串转换为 Uuid
Posted
技术标签:
【中文标题】无法从字符串转换为 Uuid【英文标题】:cannot convert from string to Uuid 【发布时间】:2019-01-01 13:32:57 【问题描述】:我正在尝试在 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'
我该如何解决这个错误?
【问题讨论】:
修复:L"905EAA46-C9E3-4B5C-8133-0000165A4DDD"
它需要一个宽字符串。
【参考方案1】:
系统平台标头中似乎存在错误。如果您将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);
就是这么可怕。
【讨论】:
我都试过了,但仍然得到同样的错误。编译器也有以下文本。 "指向的类型不相关;转换需要 reinterpret_cast、C 样式转换或函数样式转换" @BKS 啊哈,social.msdn.microsoft.com/Forums/vstudio/en-US/… @BKS 修补答案 另一种选择是调用UuidFromStringA
,避免需要破解以上是关于无法从字符串转换为 Uuid的主要内容,如果未能解决你的问题,请参考以下文章
Django:在 Django 模板引擎中将 uuid 值转换为字符串