Visual C++ でEUCのプログラムファイルの安定したビルド方法
UNIXで作ったファイルとか文字コードがEUCだったりする。
これをWindowsのVisual C++でコンパイルするときがあろう。
一応、Visual C++(Visual Studio 2008)でEUC文字のプログラムファイルもビルドできるみたい。(関数とかにマルチバイト文字を使うケースは?)
ビルドができるけれど、以下のワーニングが出てしまう。
「warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。」
このワーニングを出さないようにするには、Visual C++のオプションとかでは無理っぽい。
とすると、文字コード変換ツールで、ビルド前イベントでEUCからSJISに変換して、ビルド後イベントでSJISからEUCに変換すればいい。
文字コード変換ツールは、コマンドラインで実行できるもの、たとえば「NonSoft」さんの"文字コード判定&変換ツール.NET"を使う。
ま、それ以前に、Visual Studioでファイルを保存してしまうと、文字コードがおかしくなってしまう模様。コメントは大丈夫なのだけれど、文字列(ダブルクォーテーションで括ってある中身)が壊れてしまう・・・。
だから、UNIXから持ってきたら一括してS-JISに変換して、編集・ビルドが終わってUNIXに持って行きたいときにEUCに変換するってのが一番なのかもしれない。(そんでUNIX上でdiffをとらんとアカンよ)
手間を惜しんでも対して手間を省けないというケースですな。
« こんな番組やっていたのか | トップページ | 今日届いたもの »
コメント