10

我需要能够即时创建指南。有没有办法在 MFC 中做到这一点?我看到如何在.net 中做到这一点,但我们还没有去那里。如果没有,您是否有一些我可以使用的代码的指针?

4

5 回答 5

13
   //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);
        }
    }
于 2013-01-31T10:33:45.567 回答
12
GUID guid;
HRESULT hr = CoCreateGuid(&guid); 

// Convert the GUID to a string
_TUCHAR * guidStr;
UuidToString(&guid, &guidStr);

应用程序负责调用RpcStringFree以释放分配给 StringUuid 参数中返回的字符串的内存。

于 2009-02-17T14:27:27.077 回答
6

您可以使用 COM 函数 CoCreateGuid,例如:

GUID guid;
HRESULT hr = CoCreateGuid(&guid);
于 2009-02-17T14:22:21.833 回答
5

使用函数 UuidCreate 生成 GUID:

UUID generated;

if (::UuidCreate(&generated) != RPC_S_OK)
throw std::exception(...);
于 2009-02-17T14:20:48.733 回答
2

您可以使用此示例

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]
        );
于 2015-10-08T08:30:25.853 回答