gpt4 book ai didi

将 GUID 结构转换为 LPCSTR

转载 作者:可可西里 更新时间:2023-11-01 13:50:50 25 4
gpt4 key购买 nike

我在 C 中使用 Win32 API,需要将 GUID 结构转换为 LPCSTR。我对 Win32 比较陌生,并没有找到太多关于这种类型转换的信息。

我确实设法使用 StringFromGUID2 函数将 GUID 转换为 OLECHAR(请参阅下面的代码片段),但坚持进一步转换为 LPSCSTR。我不太确定我正朝着 OLECHAR 的正确方向前进,但目前这似乎是合乎逻辑的事情。

GUID guid;
OLECHAR wszGuid[40] = {0};
OLECHAR szGuid[40]={0};
LPCSTR lpcGuid;
CoCreateGuid(&guid);
StringFromGUID2(&guid, wszGuid, _countof(wszGuid));

最佳答案

操作系统不支持直接将 GUID 格式化为 Ansi 字符串。您可以先将其格式化为 Unicode 字符串,然后再将其转换为 Ansi:

GUID guid = {0};
wchar_t szGuidW[40] = {0};
char szGuidA[40] = {0};
CoCreateGuid(&guid);
StringFromGUID2(&guid, szGuidW, 40);
WideCharToMultiByte(CP_ACP, 0, szGuidW, -1, szGuidA, 40, NULL, NULL);

或者您可以使用 sprintf() 或类似的函数来手动格式化 Ansi 字符串:

GUID guid = {0};
char szGuid[40]={0};
CoCreateGuid(&guid);
sprintf(szGuid, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", guid.Data1, guid.Data2, guid.Data3, guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);

关于将 GUID 结构转换为 LPCSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18555306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com