diff options
Diffstat (limited to 'cpp/src/IceUtil/UUID.cpp')
-rw-r--r-- | cpp/src/IceUtil/UUID.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/UUID.cpp b/cpp/src/IceUtil/UUID.cpp index 4c6320a8507..9befbbfbb4a 100644 --- a/cpp/src/IceUtil/UUID.cpp +++ b/cpp/src/IceUtil/UUID.cpp @@ -11,6 +11,7 @@ #include <IceUtil/UUID.h> #ifdef WIN32 +# include <rpc.h> #else extern "C" // uuid/uuid.h seems to miss extern "C" declarations. { @@ -24,7 +25,19 @@ string IceUtil::generateUUID() { #ifdef WIN32 + + UUID uuid; + UuidCreate(&uuid); + + unsigned char* str; + UuidToString(&uuid, &str); + + string result(reinterpret_cast<char*>(str)); + RpcStringFree(&str); + return result; + #else + uuid_t uuid; uuid_generate(uuid); @@ -32,5 +45,6 @@ IceUtil::generateUUID() uuid_unparse(uuid, str); return str; + #endif } |