CoCreateGuid関数で新しいGUIDを生成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #include <stdio.h> #include <tchar.h> #include <iostream> #include <string> #include <locale.h> #include <rpc.h> #pragma comment( lib, "Rpcrt4.lib" ) /* GUIDを文字列に変換する */ std::wstring GuidToString ( GUID* pGuid ) { std::wstring oGuidString; RPC_WSTR waString; // GUIDを文字列へ変換する if ( RPC_S_OK == ::UuidToString( pGuid, &waString ) ) { // GUIDを結果にセット oGuidString = ( WCHAR *)waString; // GUID文字列の破棄 RpcStringFree( &waString ); } // GUIDを返す return ( oGuidString ); } int _tmain ( int argc , _TCHAR* argv[] ) { /* ロケールを日本に設定 これを設定するだけで、標準出力に日本語が表示される ようになります。 */ setlocale ( LC_ALL, "Japanese" ); GUID oGuid = GUID_NULL; // GUIDの生成 if ( S_OK != ::CoCreateGuid( &oGuid ) ) { std::wcout << L "GUIDの生成に失敗しました。( " << ::GetLastError() << L " )" << std::endl; } else { std::wcout << L "GUIDを生成できました。" << std::endl; // GUIDを文字列へ変換 std::wstring oGuidString = GuidToString( &oGuid ); // 標準出力へ出力する std::wcout << oGuidString.c_str() << std::endl; } // 正常終了 return ( 0 ); } |
GUIDを生成できました。 250c053c-ab6d-4dd1-bca3-c6cfbb178ab9