OutputDebugStringが曖昧な件
あまり使わないが、「OutputDebugString」という関数がある。
「std::cout」のように文字を出すものだが、標準出力ではなく、デバッガに出力している。
普通は次のように使う。
OutputDebugString( "abc" );
そして、別にこれと似たものが2つある。
OutputDebugStringW( L"abc" );
これもデバッガに文字列を出力するが、
違いは引数の文字列が「Unicode」でなければいけないということである。
ここでは、普通の文字列の前に「L」を置き、文字列をUnicodeにしている。
OutputDebugStringA( "abc" );
また、これもデバッガに文字列を出力するが、
こっちは引数の文字列は「SJIS」になる。
では、「OutputDebugString」とは何かというと、
ただ、文字コード別にさっきのどちらかにdefineされているだけらしい。
「SJIS」なら「OutputDebugStringA」にというように。
まあ、書きなおせばいいのだが、たくさんあるときなどは次を追加するといい。
#ifdef UNICODE
#define OutputDebugString OutputDebugStringW
#else
#define OutputDebugString OutputDebugStringA
#endif
参考にしたもの
#pragma twice 206 Version 11.06 Unicode