10 Stimmen

Wie kann ich eine guid in MFC erstellen?

Ich muss in der Lage sein, Leitfäden im laufenden Betrieb zu erstellen. Gibt es eine Möglichkeit, das in MFC zu tun? Ich weiß, wie man es in .net macht, aber wir sind noch nicht so weit. Wenn nicht, haben Sie Hinweise auf einen Code, den ich verwenden kann?

13voto

wpqs Punkte 131
   //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);
        }
    }

12voto

Mitch Wheat Punkte 287474
GUID guid;
HRESULT hr = CoCreateGuid(&guid); 

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

Die Anwendung ist verantwortlich für den Aufruf RpcStringFree um den für die im Parameter StringUuid zurückgegebene Zeichenkette zugewiesenen Speicher freizugeben.

6voto

John Sibly Punkte 21927

Sie können z.B. die COM-Funktion CoCreateGuid verwenden:

GUID guid;
HRESULT hr = CoCreateGuid(&guid);

5voto

Edouard A. Punkte 6114

Verwenden Sie die Funktion UuidCreate, um GUIDs zu erzeugen:

UUID generated;

if (::UuidCreate(&generated) != RPC_S_OK)
throw std::exception(...);

2voto

Oriel Dayanim Punkte 119

Sie können dieses Beispiel verwenden

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]
        );

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X