GUID est un composant couramment utilisé dans le développement de logiciels, utilisé pour générer des objets uniques dans des langages tels que C#, Java et Python, en raison de Leur bibliothèque standard est relativement riche, donc la génération de GUID est relativement simple et peut souvent se faire en une ou deux lignes de code. Ni le langage C++ lui-même ni la bibliothèque standard ne fournissent d'API pour générer des GUID. Par conséquent, C++ ne peut pas être utilisé pour générer directement des GUID. Cet article présente deux méthodes de création indirecte de GUID à l'aide de C++ : 1) en appelant la fonction Win32API-CoCreateGuid 2) à l'aide de la bibliothèque Boost ;
CoCreateGuid est une fonction API fournie par le système Windows lui-même et se trouve dans le fichier d'en-tête objbase.h
Par conséquent, nous devons d'abord inclure le fichier d'en-tête :
include <objbase.h>
GUID guid; HRESULT h = CoCreateGuid(&guid); if (h == S_OK) ans = GuidToString(guid); else throw runtime_error("generate guid failed!");
std::string GuidToString(const GUID &guid) { char buf[64] = { 0 }; sprintf_s(buf, sizeof(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); }
#include <boost/uuid/uuid.hpp> #include <boost/uuid/uuid_generators.hpp> #include <boost/uuid/uuid_io.hpp> boost::uuids::uuid uid = boost::uuids::random_generator()(); const string uid_str = boost::uuids::to_string(uid); cout << uid_str << endl;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!