答案:C++中生成UUID可通过Boost库、系统API或轻量库实现;推荐Boost用于大型项目,Windows用CoCreateGuid,Linux读取/proc/sys/kernel/random/uuid,嵌入式场景可用uuid-cpp等头文件库。

在C++中生成UUID(通用唯一识别码)没有标准库直接支持,但可以通过第三方库或调用系统API来实现。以下是几种常见的方法。
boost::uuids提供了生成和操作UUID的工具。
步骤:
<boost/uuid/uuid.hpp>和<boost/uuid/uuid_generators.hpp>
#include <iostream>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
int main() {
boost::uuids::random_generator gen;
boost::uuids::uuid uuid = gen();
std::cout << uuid << std::endl;
return 0;
}
g++ -o uuid_example uuid.cpp -lboost_system -lboost_random
Windows平台:使用CoCreateGuid
CoCreateGuid
#include <iostream>
#include <objbase.h>
std::string guid_to_string(const GUID& guid) {
char buf[37];
sprintf(buf, "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
guid.Data1, guid.Data2, guid.Data3,
guid.Data4[0], guid.Data4[1], guid.Data4[2],
guid.Data4[3], guid.Data4[4], guid.Data4[5],
guid.Data4[6], guid.Data4[7]);
return std::string(buf);
}
int main() {
CoInitialize(nullptr);
GUID guid;
CoCreateGuid(&guid);
std::cout << guid_to_string(guid) << std::endl;
CoUninitialize();
return 0;
}
ole32.lib:
cl uuid_win.cpp -link ole32.lib
Linux平台:读取/proc/sys/kernel/random/uuid
立即学习“C++免费学习笔记(深入)”;
#include <iostream>
#include <fstream>
#include <string>
std::string generate_uuid_linux() {
std::ifstream file("/proc/sys/kernel/random/uuid");
std::string uuid;
if (file >> uuid) {
return uuid;
}
return "";
}
int main() {
std::cout << generate_uuid_linux() << std::endl;
return 0;
}
uuid-cpp提供头文件-only的解决方案,依赖少,易于集成。
#include "uuid.hpp" auto uuid = uuids::to_string(uuids::generate()); std::cout << uuid << std::endl;
以上就是c++++中如何生成uuid_c++生成UUID方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号