2024年10月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ

 

« こんな番組やっていたのか | トップページ | 今日届いたもの »

2009年9月12日 (土)

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をとらんとアカンよ)

手間を惜しんでも対して手間を省けないというケースですな。

« こんな番組やっていたのか | トップページ | 今日届いたもの »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Visual C++ でEUCのプログラムファイルの安定したビルド方法:

« こんな番組やっていたのか | トップページ | 今日届いたもの »