幾つかの理由で、C/C++ のコンパイラには、
gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
を使っている。(→MinGW) フリーで自由に使えるので、あまり文句は言えないが、幾つか困った事が出てくるので、自分の備忘録として書いておく
- 日本語の扱いに難がある
最悪、Shift_JIS なら
gcc finput-charset=CP932 fexec-charset=CP932 hoge.cとし、UTF-8 ならばgcc fexec-charset=CP932 hoge.cで上手くいくはずが、現在のこのバージョンでは、この方法も上手くいかない、ネットの情報を見ると問題なかったヴァージョンも存在するということで、一旦、R1 にすると出来たので、どうやらレベル・ダウン・バグの様。
ただし、これについては、殆ど _T() マクロを使ってやれば問題なし。
最大の問題は、ダイアログ・ボックスにおける日本語。普通にやると文字化けを起こす。そこで、『MinGWによる日本語Windows Programming』で提供されている方法で、リソース・コンパイラ windres に渡す前の段階でフィルタをかけてやるうまくいく。提供して下さっている藤井さん有難う。(まあ、ここで書いても意味は無いけど) - HTML ヘルプの呼び出しが面倒
MinGW では HTML ヘルプを呼び出す HTML Help API HtmlHelp() 関数が用意されていないよう。
仕方が無いので、『HTML Help Workshop』に含まれているヘッダ・ファイルとライブラリを使うしかないのだが、これが一筋縄ではいかない。INCLUDE や LIB に追加しなければいけないのは当然だが、それだけでは上手くいかない。リンクが上手くいかないのだ。
結果、ファイルを直接指定しないとダメのよう。要するに、Makefile にINCS = -I /c/Program\ Files/HTML\ Help\ Workshop/include LIBS = -L /c/Program\ Files/HTML\ Help\ Workshop/lib -lhtmlhelpといった記述が必要。