【发布时间】:2010-10-08 02:31:33
【问题描述】:
我需要能够即时创建指南。有没有办法在 MFC 中做到这一点?我看到如何在.net 中做到这一点,但我们还没有去那里。如果没有,你有一些我可以使用的代码的指针吗?
【问题讨论】:
我需要能够即时创建指南。有没有办法在 MFC 中做到这一点?我看到如何在.net 中做到这一点,但我们还没有去那里。如果没有,你有一些我可以使用的代码的指针吗?
【问题讨论】:
使用函数 UuidCreate 生成 GUID:
UUID generated;
if (::UuidCreate(&generated) != RPC_S_OK)
throw std::exception(...);
【讨论】:
您可以使用COM函数CoCreateGuid,例如:
GUID guid;
HRESULT hr = CoCreateGuid(&guid);
【讨论】:
GUID guid;
HRESULT hr = CoCreateGuid(&guid);
// Convert the GUID to a string
_TUCHAR * guidStr;
UuidToString(&guid, &guidStr);
应用程序负责调用RpcStringFree来释放分配给StringUuid参数中返回的字符串的内存。
【讨论】:
//don't forget to add Rpcrt4.lib to your project
CString m_ListID(L"error");
RPC_WSTR guidStr;
GUID guid;
HRESULT hr = CoCreateGuid(&guid);
if (hr == S_OK)
{
if(UuidToString(&guid, &guidStr) == RPC_S_OK)
{
m_ListID = (LPTSTR)guidStr;
RpcStringFree(&guidStr);
}
}
【讨论】:
您可以使用此示例
WCHAR GuidText[250] ={0};
UUID uuid;
CoCreateGuid (&uuid);
wsprintf(
GuidText,
L"%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
uuid.Data1,
uuid.Data2,
uuid.Data3,
uuid.Data4[0], uuid.Data4[1],
uuid.Data4[2], uuid.Data4[3], uuid.Data4[4], uuid.Data4[5], uuid.Data4[6], uuid.Data4[7]
);
【讨论】: