
int型の数値を文字列に変換するには、従来からのC/C++ではitoa関数を利用した。しかしWindowsプログラミングではitoa関数は使わない方がいい。
もちろんitoa関数も使えるが文字列バッファーサイズを指定できるためセキュリティが若干高い_itoa_s系の関数を利用した方がいい。さらに言うと実際のプログラミングでは速度的には劣るがバッファーのことを考える必要がなくコーディングが楽なCString型の文字列を利用する変換がいいだろう。
bool Test()
{
////////////////////////////////
// int型数値を文字列に変換
//
{
//char型文字列に変換
int nValue = 123;
char pszText[256];
//itoaや_itoaは利用しない方がいい!代わりに_itoa_sを使う
::_itoa_s(nValue,pszText,256,10);
::MessageBoxA(NULL,pszText,"",MB_OK);
}
{
//wchar_t型文字列に変換
int nValue = 123;
wchar_t pszText[256];
//_itowは利用しない方がいい!代わりに_itow_sを使う
::_itow_s(nValue,pszText,256,10);
::MessageBoxW(NULL,pszText,L"",MB_OK);
}
{
//TCHAR型文字列に変換
int nValue = 123;
TCHAR pszText[256];
//_itotは利用しない方がいい!代わりに_itot_sを使う
::_itot_s(nValue,pszText,256,10);
::MessageBox(NULL,pszText,_T(""),MB_OK);
}
{
//CString型文字列に変換
int nValue = 123;
CString strText;
strText.Format(_T("%d"),nValue);
::MessageBox(NULL,strText,_T(""),MB_OK);
}
return true;
}
