Windows programming (2) - オリエンテーション - 2000.December 1. 最初の1歩  あたしの手持ちはlcc-Win32、VC++ 6.0 SP3/4、BCC 5.5 (free)、mingw32  (gcc 2.95.2、ちと古い)です。  #VC++は商用コンパイラですが、一応リファレンスとして……  #VC++ 6.0 SP4は未だ入れてません。MS製品のアップデートって、怖いんで(^^;;   会社のマシンには「通らばリーチ!」で、入れましたけど(ぉぃぉぃ)   IE 4のSP1はおとなしく入ったけど、SP2を入れたらマシンがまともに起動しなく   なったって実績があるしぃ。それに初代Win95にサービスパック入れたらxcopy32   すら動かなくなったという事実もあるしぃ。。。  %下手にアップデートして、fdiskしなきゃならないようなトラブルに直面   するぐらいなら、バグだらけであろうとも現状を維持する方がまし。という   判断なのです。 2. ダウンロード  を、する前に:  あなたがどんなプログラムを作りたいかによって最適なC/C++コンパイラが違って  来ます。とりあえずURLの紹介:  Win32用。紹介したコンパイラは全てGUIな窓プログラム*も*作れます。 ・Borland C++ 5.5、C/C++  すんません。最新URL不明です。C Magazine買えば付いてくるので、気にしてません。  適当に検索かけると出てくるんでは?(無責任)  WEBからも落とせるけどC Magazineを買えば付いている(いた?)。  市販のコンパイラからIDE (統合環境)を除いた物。日本語版。  コマンドラインからのコンパイルのみ可能。  最初のfree版にあったバグは取れている。が、未だ付属のヘルプには説明不足が  ある。ランタイムライブラリを使うコンパイルをした場合、一体全体どれが  実行ファイルとともに配布すべきランタイムなのかさっぱり分からない。  #全く記述がないのよね〜  ちなみに、C Magazine 2000.11付属の奴以降をインストールすること。  自己展開ファイルのファイル名の最後が'2'。これより古い奴には致命的な問題が  あるので避けること! ・Lcc-Win32、C  http://www.cs.virginia.edu/~lcc-win32/  CのみC++不可。個人で作成しているコンパイラ。高速にコンパイルできる。  バージョンアップが頻繁。ダウンロードサイズは紹介する中では  最小。それなのに統合環境やソース管理システムも付属。しかし英語版。  しかし2000.11版でも16*16*16色なアイコンの作成をサポートしていない。  困ったものだ。しかし、リソースエディタが付属してるのはこいつだけ。  日本語文字列をソースに含めると誤動作するので注意が必要。  インストールはこいつが一番簡単。 ・gcc、C/C++ (Cygnus)  http://www.cygnus.com/misc/gnu-win32/  unix版の移植。必須ではないが、unix系ツールも山ほどダウンロード  可能。unixのプログラムをWin32に移植する場合は多分便利。純粋な  Win32プログラムも作成可能。gcc自身を再コンパイルすれば日本語版の  作成も可能らしい(条件コンパイルフラグをいじるだけのようだ)。  コマンドラインからのコンパイルのみ可能。  昔は単一ファイルで配布してたけど、今は各コマンド毎にダウンロード  するようになっている。  これ入れるとunixなコマンドが大概動くので便利。 ・mingw32、C/C++  ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2/  gccの仲間。純粋なWin32プログラムを作るために特化。ランタイム  としてcrtdll.dllを使う版とmsvcrt.dllを使う版の2種類ある。英語版。  コマンドラインからのコンパイルのみ可能。  crtdll.dllは全てのWin9xに存在する。しかし、msvcrt.dllは初代Win95には  付属してない。そしてmsvcrt.dllはそのバージョンによって挙動が違うという  悪癖がある。msvcrt.dllの古いバージョンで動作OK。より新しいバージョンでは  動作不能。最新では動作OK。という経験を私はしたことがある。  msvcrt.dllはVC++のランタイムでもあり、メンテナンスの対象であり、更新も  されているが、crtdll.dllはMSのメンテナンス対象外である。  とはいえ、先のmsvcrt.dllの不具合ってのは、VC++ 6で過去バージョンの  msvcrt.dllとは非互換のものを提供した。という不具合が発覚して修正するより  *前*の話だ。信じない人もいるかもしれないが、MSのdllは同じバージョンで  あるのにサイズやタイムスタンプが違う。というのがある。というのは事実。  つまり、私ならmsvcrt.dll版は絶対入れない。  環境依存性がいやだから非MS系を選ぶのであって、OSバージョンに依存して  良いならVCを使う。 ・VC++  もちろん商用ソフト。フリー版はない。MS製だから安心。かと言うとそんなことは  ない。他のC++と互換性が低かったり、ヘッダにバグがあったりと、それなり。  SP (サービスパック)は必ず適用すること。VC5ならSP3が最終。VC6は現在SP4まで  出ている。適用しないと使い物にならない品質のコードを出すことがある。  使用している人数の関係でWindowsではこいつを使うのが無難。ということはある。  VxD (Win9xでのみ動作するデバイスドライバとゆーか、まぁI/Oを直接いじれる奴)が  作れるのは多分、これだけ。 ・gccの変種、C/C++  http://www.bloodshed.net/  統合環境付き。β版はリソースエディタがなかったけど、今はどう  なってるかな(^^;; ・gcc用統合環境(コンパイラは含まず)  http://homepage1.nifty.com/mla/gds2k/gds2k.htm  昔見た時は統合環境と言ってもリソースエディタがなかったけど、  その後、どう進歩したかは未確認。日本語版。 ・SDK tools (コンパイラやリンカは含まず)  http://msdn.microsoft.com/developer/sdk/sdktools.asp  MS純正の開発ツール一式(リソースエディタとかアイコンエディタとか、  Win32なヘッダファイルとか、ヘルプコンパイラなど多数)落とせます。  VC++とかでSDKツールと呼ばれているものと同じ。でも、VC++6だとインストール  されないのがあるぞ!  こいつはしかし256色アイコンが作れない。その手のアイコンを作りたいなら  フリーで転がっているアイコンエディタを探すべし。です。 ・MSDN、Platform SDK  http://msdn.microsoft.com/developer/sdk/platform.asp  サンプルとかヘルプが山のように落とせたんじゃなかったかな?  まぁいずれにせよMSDN CD-ROMに入っているのと同じだった。  って、ライブラリエディションには付属してなくて、その上の奴でないと  付いて来ませんが。 ・MSDN、Win32 DDK  http://www.microsoft.com/ddk/  MSDNプロフェッショナルエディション以上でないと付いてこないDDKが  落とせます ・htmlヘルプ開発環境(注意:URLが長いので2行に切ってます)  http://msdn.microsoft.com/library/default.asp?  URL=/library/tools/htmlhelp/chm/hh1start.htm  画像ファイルの変換機能プログラムとかあるし、ツリーを見ながら  htmlを作れるので、純粋なhtml editorとしても使えるかも(タグが  丸見えなんで、割と原始的。だけど、妙なhtmlを作られるよりは  256倍まし)  htmlhelpを自アプリに組み込むためのヘッダやライブラリはここで  入手できる。 #URLが届かなかったり、不適切だったり、内容に誤りがある場合は  訂正のメールを頂ければ幸いです @どいつもこいつも一長一短なので、好みでお選び下さい。あ、どれも  フリーのはず(VC++本体以外は) %私のお薦めですか?さてねぇ。Cだけで良いならlccです。これは日本語に対応  してませんが、学習用途ならむしろその方が望ましいとか思うし。  C++も欲しいとなれば、Cygwinなgccかな。豊富なunix互換コマンドで幸せに  なれますし。が、今現在Cygwinが我がHDDに入っていないのはつまりHDDの空き  容量が寂しいためですね。それと、unixコマンドをありがたがるぐらいなら、  素直にLinuxを基幹OSとして動かすのが正解。という気がとてもします。  日本語対応なC/C++。ということならBCCでしょうか。  GUIを作るなら、最低でもMSDNなdlgeditは入手しましょう。Windowなリソースを  作るにあたり、方眼紙と格闘するのってのは不毛です。  もちろんlccにはリソースエディタも付属してます。が、lccのそれでリソースを  作ってgccでコンパイル。ってのは変でしょう?  VC++でリソース作るとMFC用の細工が一杯入ったもんができるし。  (lccのそれも同様ではありますがね)  そういう意味で私はSDK Toolなリソースエディタをお薦めしておきます。  たとえ、その為に大量のダウンロードが必要であったとしても。  そしてそいつがWin3.1時代のコントロールしかサポートしてないとしても。  ちなみにDlgEdit.exe。ですね。VC++ 5ぐらいだとVCに付属してたと思ったけど。  でもそのためにVC買うのはナンセンスですねぇ。 3. 処理系の選択  HDDが狭いよぉ。とか言いながらも何故に色々なC/C++コンパイラがあたしの  マシンに常駐しているか、少しは分かって貰えてますか?  「んにゃ。いっちょん(少しも)わからん」かもしれませんが(sigh)  あたしとしては、優劣付けがたいのでそれぞれがあるのよ。ってことです。 (EOF)