概要
インストーラー等に必要なGUID値(世界で唯一つの値)を作成するプログラムのサンプルである。
コマンドラインで動作します。引数でGUID値を作成する個数を指定できます。このプログラムを応用すれば例えばサンプルのwxsファイルのguid値を自動的にユニークな値に変換するプログラム等の作成が可能となります。
ダウンロード
ソースコード
// コマンドライン版GUID値作成プログラム
// 引数で作成するGUID値の個数を指定可能
#include <windows.h>
#include <tchar.h>
void guid_str(TCHAR* buf,int sz,GUID& g){
_stprintf_s(buf,sz,_TEXT("%.8X-%.4X-%.4X-%.2X%.2X-"),g.Data1 , UINT32(g.Data2) ,UINT32(g.Data3) ,UINT32(g.Data4[0]),UINT32(g.Data4[1]) );
TCHAR vs[4];
for(int n=2;n<8;n++){
unsigned v=g.Data4[n];
_stprintf_s(vs,sizeof(vs)/sizeof(TCHAR),_TEXT("%.2X"),v);
_tcscat_s(buf,sz,vs);
}
}
void _tmain(int argc,TCHAR** argv){
GUID guid;
TCHAR buf[64];
if(SUCCEEDED(CoInitializeEx(0, COINIT_APARTMENTTHREADED))){
int max=argc==2 ? _ttoi(argv[1]) : 1;
for(int n=0;n<max;n++){
CoCreateGuid(&guid);
guid_str(buf,sizeof(buf)/sizeof(TCHAR),guid);
_tprintf(_TEXT("%s\n"),buf);
}
CoUninitialize();
}
}