【问题标题】:How can I create a guid in MFC如何在 MFC 中创建 guid
【发布时间】:2010-10-08 02:31:33
【问题描述】:

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

【问题讨论】:

    标签: c++ mfc guid


    【解决方案1】:

    使用函数 UuidCreate 生成 GUID:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:
        GUID guid;
        HRESULT hr = CoCreateGuid(&guid); 
        
        // Convert the GUID to a string
        _TUCHAR * guidStr;
        UuidToString(&guid, &guidStr);
        

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

        【讨论】:

          【解决方案4】:
             //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);
                  }
              }
          

          【讨论】:

            【解决方案5】:

            您可以使用此示例

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2010-10-06
              • 2010-09-11
              • 2011-02-28
              • 2016-01-15
              相关资源
              最近更新 更多