インストーラー等に必要なGUID値(世界で唯一つの値)を作成するプログラムのサンプルである。
コマンドラインで動作します。引数でGUID値を作成する個数を指定できます。このプログラムを応用すれば例えばサンプルのwxsファイルのguid値を自動的にユニークな値に変換するプログラム等の作成が可能となります。

ダウンロード

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();
	}  
}