[メモ] OutputDebugStringに書式指定を
OutputDebugStringで書式指定ができるようにするコード。ただし、C++。
昔はどうだったかはわからんけど、今のOutputDebugStringはマクロなので、置き換えてしまえば良い。
#ifdef OutputDebugString
#undef OutputDebugString
#endif
#ifdef UNICODE
#define OutputDebugString OutputDebugStringFW
#define OutputDebugStringV OutputDebugStringFVW
#else
#define OutputDebugString OutputDebugStringFA
#define OutputDebugStringV OutputDebugStringFVA
#endif // !UNICODE
void OutputDebugStringFA( const char *format, ... )
{
va_list args;
va_start( args, format );
OutputDebugStringFVA( format, args );
va_end( args );
}
void OutputDebugStringFW( const wchar_t *format, ... )
{
va_list args;
va_start( args, format );
OutputDebugStringFVW( format, args );
va_end( args );
}
void OutputDebugStringFVA( const char *format, va_list args )
{
int len = _vscprintf( format, args ) + 1;
char * buffer = new char[len];
vsprintf_s( buffer, len, format, args );
OutputDebugStringA( buffer );
delete[] buffer;
}
void OutputDebugStringFVW( const wchar_t *format, va_list args )
{
int len = _vscwprintf( format, args ) + 1;
wchar_t * buffer = new wchar_t[len];
vswprintf_s( buffer, len, format, args );
OutputDebugStringW( buffer );
delete[] buffer;
}
別途windows.hをインクルードとか、プロトタイプ宣言とかをする必要がある。
| 固定リンク
「趣味」カテゴリの記事
- 重複を削ればもっとわかりやすい(2009.10.26)
- MSDNサブスクライバーダウンロードとかのプロダクトキー一覧をXMLでエクスポートしたはいいけど、XMLのままだとちょっと見難いので、XSLT埋め込みテクノロジを流用してみた(2009.10.25)
- [PR] SHA-256ってどうよ(2009.10.21)
- [メモ] 符号有無を変えるだけのキャストを間違えないように(2009.10.10)
- シェアウェア登録方法がよく分からん(2009.10.09)
この記事へのコメントは終了しました。
コメント