GUID는 소프트웨어 개발에서 일반적으로 사용되는 구성 요소로, 고유한 개체를 생성하는 데 사용됩니다. C#, Java 및 Python과 같은 언어에서는 표준 라이브러리가 상대적으로 풍부하기 때문에 GUID 생성이 비교적 간단하고 자주 발생합니다. 단 두 줄의 코드만으로 가능합니다. C++ 언어 자체나 표준 라이브러리 모두 GUID 생성을 위한 API를 제공하지 않습니다. 따라서 C++를 사용하여 GUID를 직접 생성할 수 없습니다. 이 기사에서는 C++를 사용하여 GUID를 간접적으로 생성하는 두 가지 방법을 소개합니다. 1) Win32API-CoCreateGuid 함수 호출 2) Boost 라이브러리 사용.
CoCreateGuid는 Windows 시스템 자체에서 제공하는 API 함수이며 objbase.h
header 파일에 있으므로 먼저 헤더 파일을 포함해야 합니다.
include <objbase.h>
CoCreateGuid를 호출하는 코드는 다음과 같습니다.
GUID guid; HRESULT h = CoCreateGuid(&guid); if (h == S_OK) ans = GuidToString(guid); else throw runtime_error("generate guid failed!");
위 코드에서 GUID가 성공적으로 생성되면 h의 값은 S_OK이고, 실패하면 다른 플래그입니다. HRESULT는 COM 구성 요소의 반환 값 유형입니다. HRESULT를 참조하세요. GuidToString 함수는 생성된 Guid를 std::string으로 변환하는 데 사용됩니다. 관련 튜토리얼: C++ 비디오 튜토리얼
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); }
Win32API를 기반으로 GUID를 생성하는 이 방법의 장점은 다른 라이브러리에 의존할 필요가 없다는 것입니다. 단점은 크로스 플랫폼이 될 수 없고에서만 사용할 수 있다는 것입니다. 윈도우 플랫폼.
Boost 라이브러리를 사용하여 GUID를 생성하는 것은 비교적 간단합니다. 코드는 다음과 같습니다.
#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;
먼저 패키지를 로드한 다음 Boost::uuid 네임스페이스에서 관련 유형과 함수를 사용하여 생성합니다. std::string GUID 유형입니다. BOOST를 기반으로 GUID를 생성하는 방법은 비교적 간단하지만, 추가적인 Boost 라이브러리 도입이 필요하다는 단점이 있습니다.
위 내용은 C++에서 GUID를 생성하는 두 가지 방법에 대한 간략한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!