#warning MSACM.H: Defining _UNICODE because application defined UNICODE

 GPPでビルドするとエラーではないが

#warning MSACM.H: Defining _UNICODE because application defined UNICODE

という警告が出る場合があります。この場合、Unicodeを使っているがその宣言をしていないためだと考えます。この場合には

#define _UNICODE //ワイド文字列 (Unicode) 対応

の定義を行えば警告が出ません。是非試してください。プログラム初心者にはわかりにくいですが、プログラム中の文字列の格納方法は

  • Ascii文字(8ビットの英数字、昔からある形式)
  • マルチバイト文字列 (SJIS)  #define _MBCS
  • ワイド文字列 (Unicode) 対応 #define _UNICODE

があります。別に自前で全てを8ビット文字列として扱えば良いと思われますが、既存の関数を使いたい場合は、文字列の違いはこの仕組みで吸収されます。ちょっと苦しいですが覚えておくと良いと考えます。