Windows programming (4) - 実行環境のテスト - 2000.December 1. その他用意するもの  さて。参考文献、コンパイラはこれでOK。後必要なものはエディタ。統合環境が  あればそれを使ってOKOKだが、それがなければエディタが必要。  メモ帳でも良いけど、余りに悲しすぎる。ちなみに当方は市販のWz Editor。  ベストとは言わないけど、Windows版のエディタとしてはまぁまぁでしょう。  それとgrepがあった方が良い。文字列検索ツール。元々UNIXのコマンドだったが、  古代からDOSや他のOSに移植されている。まぁWin9xのスタートメニューから検索  しても良いけど。  要するに複数のファイルから文字列検索する機能が欲しいということです。  次に。GUI (要するに窓)プログラムを作るなら、次のものが必要。  ・アイコンエディタ   16*16*16色と32*32*16色の2種類は最低でも作れた方が良い。   フリーのものがあちこちに転がっているので、お好きなものをどうぞ。   あっしはSDK付属の奴を使ってます。どうせ絵心ないしぃ。  ・ダイアログエディタ   これがないんです。あっしは一応SDK付属の奴を使ってますけどねぇ。   MSのサイトから馬鹿でっかいファイルを落とせばそこに入ってはいたんですが。   最悪、テキストエディタでごちゃごちゃといじることはできます。が、効率が   無茶悪いです。VC++の統合環境でリソース作って。。。ってのは不毛ですし。 2. 最初のプログラム  やっと本題。というか先ずは小手調べ。定番:  #include  int main()  {   puts("Hello, world!");   return 0;  }  こいつがコンパイルして動かせないようでは話にも何にもならない。  どのC/C++コンパイラを使ったにせよ、これは動く。コンパイルできるはず。  もしエラーが出て実行ファイルが出来ないようならもう一度各コンパイラ付属の  マニュアルを読んでね。  ちなみに、このソースは「コンソールプログラム」なので、DOS窓を開いて、  そこで実行してみてください。そうでないと一瞬だけDOS窓が開いて閉じる。  という状態になるかも。  解説を少し。C言語は入出力を規定してはいない。stdio.hというのは「標準入出力  ライブラリ」を使えるようにする。という意味でしかない。  例えばpascalではwriteln()が使えないとpascal言語ではない。というのとは違う。  Cでprintf()が使えないとしてもC言語としては問題ないのだ。  #ANSI Cとしては大いに問題あるよ。もちろん  後、何故printf()でなく、puts()なのは?という疑問がもしかしたらあるかも。  理由は、使いもしないライブラリをリンクするのがいやだから。ということ。  更に、int main(void)でない理由ですが、これやると何かの(忘れた)コンパイラで  Syntax Errorを喰らったという記憶があるからです。  今、Cの場合はint main(void)かint main(int argc, char* argv[])のどっちかが  (どちらでも良い)正しい書き方です。void main()なんてのは論外ですんで、  そーゆー本は燃料にするのが吉。 2. トラブルシューティング ・エラーが出る(1)  全角文字が混ざってませんか?「=」は全角、「=」は半角。「 」も「 」も  日本語なマシンでは同じに見えるでしょうが、英語マシンでは別物として表示  されます。  慣れるまで、日本語は一切ソースに入れない。という方針を推奨しときます。  freeなコンパイラでは日本語を扱えない。というのが珍しくないですし。 ・エラーが出る(2)  ソースファイルの最後に注目。ソースの最後が改行だけの行でないとエラーと  なるコンパイラ、ありました。  また、ソースファイルの最後にEOF (^Z)が付いているとエラーとなるコンパイラも  あります。  VzのようなDOS起源のエディタだと最後にEOFを挿入することがあります。これは  DOSとしては正常な動作です。要するに最後のEOFに過敏に反応する方が問題なの  ですが、Win32ではEOFは「なくても良い」な代物だし、実質EOFを付加する  エディタはほとんどないみたいだし……。  #っていうか、EOFを付けるのはCP/M-80の仕様だったのでは?(忘れてるぅ)。   少なくともDOSでEOFを付ける理由は(下位互換性以外では)なかったはず ・日本語入りだとコンパイルできない  /* 表 */とかやるとエラーする。コメントなのにぃ。とかいう状況でしょうか。  いや、コメントでなくてもトラブルのですが。  それはWindowsの日本語文字コード、Shift-JISのせいです。日本語のせいでは  ないです。UNIX系で使われているEUCではこの問題はおきません。JISコードでも  大丈夫のはず。が、まぁ、Shift-JISを考慮していない場合は漏れなくトラブル  と思って差し支えないです。 ・コマンドが動かない  Path、ちゃんと通しました?BCCだと設定ファイルも必要ですが。後、環境変数の  セットが必要な処理系もありますね。includeとかlibとか。  詳細は付属のマニュアルとかを参照のこと。  冷たいようですが、この程度で挫折するようではお先真っ暗ですから。 #宣伝(でもないけど)。このサイトのFreewareの所にバッチでコンパイラを駆動する  という物が置いてあります。良かったらそれをご使用下さい。少しは楽ができる  かもです (EOF)