如何在不使用 boost 库的情况下在 c 中生成 UUID?

新手上路,请多包涵

我想为我的应用程序生成 UUID 以区分我的应用程序的每次安装。我想在不支持 boost 库的情况下使用 C++ 生成这个 UUID。如何使用其他一些开源库生成 UUID?

注意:我的平台是windows

原文由 PURE 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 733
1 个回答

这段代码对我有用:)。

 #pragma comment(lib, "rpcrt4.lib")
#include <windows.h>
#include <rpcdce.h>
/*
* Generate a Universal Unique Identifier using windows api.
* Note: throw exceptions if uuid wasn't created successfully.
*/
std::string generate_uuid()
{
    UUID uuid;
    RPC_CSTR  uuid_str;
    std::string uuid_out;

    if (UuidCreate(&uuid) != RPC_S_OK)
        std::cout << "couldn't create uuid\nError code" << GetLastError() << std::endl;

    if (UuidToStringA(&uuid, &uuid_str) != RPC_S_OK)
        std::cout << "couldn't convert uuid to string\nError code" << GetLastError() << std::endl;

    uuid_out = (char*)uuid_str;
    RpcStringFreeA(&uuid_str);
    return uuid_out;
}

原文由 reem_mikulsky 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题