2007年8月31日金曜日

VC++2005 sprintf の代わりに Format を使う

VC++2005 sprintf の代わりに Format を使う

sprintf を使うとバイナリを簡単にアスキーコードに変換できるので便利でしたが、MFC では CString の Format がもっと便利でした。
VC++2005 では CString のかわりに、 String を使用しました。
String は型指定方法が "%02x" -> "{0:X02}" になったことや、変換値を Format の戻り値から取得するしかないなど使いにくく感じます。

でも、VC++2005 で MFC は使いたくないのでしょうがないですね。

例では、0x35 というデータを表示用としてアスキーコード 0x33,0x35,0x00(null) に変換します。
----------------------------------------
例)sprintf を使用した場合
----------------------------------------
char moji[3] = { null };
unsigned char bindata = 0x35;
sprintf(moji,"%02x",bindata);
----------------------------------------
例)CString の Format を使用した場合(MFC)
----------------------------------------
CString moji;
unsigned char bindata = 0x35;
moji.Format("%02x",bindata);
----------------------------------------
例)String の Format を使用した場合
----------------------------------------
String^ job;
unsigned char bindata = 0x35;
String^ moji = job->Format("{0:X02}" , bindata);

0 件のコメント: