lcc-win32 1999.Jan., Apr.28 いつものように、ひっそりとバージョンアップ。1999年1月バージョン。 実は私もマシンを変更したので、何も考えずにインストール。 で。直ってますねぇ。バグが。 #include int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { BOOL bWait; bWait = (lstrlen(lpCmdLine) == 0); if (bWait) MessageBox(NULL, "T", "", 0); if (!bWait) MessageBox(NULL, "T", "", 0); else MessageBox(NULL, "F", "", 0); return 0; } /* EOF */ を最適化すると、動作がおかしいとか: #include main() { puts("a"); puts("b"); fputs("1\n", stdout); fputs("2\n", stdout); puts("c"); } を、リダイレクトすると変。とか。しっかり直ってるみたい。素晴らしい。 でも、コントロールパネルの「アプリケーションの追加と削除」で見ると相変わらず lcc version 2.5ってのは止めて欲しいな(ちゃんとバージョン番号は管理して欲しい)。 lcc.exe自体にはバージョンリソースが付いてないしぃ。 そーいや、最近アップデートしたWz Editorもコントロールパネルで見ると: WZ EDITOR 4.0 BETA って書いてある。ぉぃぉぃ(爆)。正式版のはずなのだけどねぇ(^^;; === で、4/27にサイトからダウンしてみたらまたバージョンが上がってます。 実は1月から4月の間で2つほどバイナリのバージョンが上がっていることは確認 してましたし、落としてもいましたが、現状に満足している私は中身を確認する こともなく放置していました。 で、4/27現在で落とせるものは次の通り。 1. LCC-Win32 (約2M) lccwin32.exe 2,038,271 byte 2. Windows API documentation (13MB) win32hlp.exe 13,471,059 byte 3. LCC-Win32 users manual (約700k) manual.zip 685,947 byte 4. Fortran compiler (750K) このうち1-3は性懲りも無く落としました。3.は以前のものが98/12月版だったのが、 今回は99/02月版になったようです(途中、落としてないバージョンがあるかも)。 で、99/1月の時点では存在した標準(ANSI) Cの関数のドキュメントがなくなり、 代わりに2.があるんですが、これって何? という訳で落としたのです。完全FreeなWin32のマニュアルならこれは実に画期的 ですから。 結論として:win32hlp.exeは自己解凍形式のMicrosoft純正のSDKマニュアルでした。  古いSDKに付属していたWinHelp.exe形式のアレです。  最も最近のPlatform SDKの分離したhtmlhelp形式の奴ではなく、MSDNと一体化  したhtmlhelpでもなく、その前のInfoView形式のアレでもなく、それより以前の  SDKに付属していたアレです。  最終的に出てくるファイルはWin32sdk.hlp, 20,033,075 byte, 96/11/26 12:00  でして、サイズ、タイムスタンプ共にその昔、SDKからインストールしたものと  完全一致しました。  こんなものを再配布して良いのだろうか?というのが最初の疑問。展開時に表示  される使用許諾条件を斜めにしか読まなかったけど多分、OK?  だけど、これだけでは辛いものがあります。私はこのWin32sdk.hlpは今も使って  ますけど...  【参考】当方が所有し、使用しているMS純正のOn-lineマニュアル  a. Win32sdk.hlp   ・当然ながら古いAPIしか載ってない。逆にこいつで解説されているAPIならば    どのWindows 95でも動作するはず   ・比較的軽い。非力なマシンで見る場合はとっても嬉しい   ・関数名を知っていないと使えたものではない。基本的に関数リファレンス    だから、自分の知らない関数は引けないと思うべき  b. InfoViewで見るヘルプ   ・これも古いAPIしか載ってないけど、当然、Win32sdk.hlpよりは新しい   ・プログラミングマニュアルなので、例えばListViewはどう使うのか?という    疑問を解決する用途にも充分使える  c. MSDNのヘルプ   ・重い、でかい、ゴミが山ほどある。という3重苦   ・C/C++のマニュアルも含んでいるので、便利なことがある   ・KB (ノウハウデータベース)まで検索しないとSDK部分の間違いが分からないが、    KBまで検索の対象にすると、大概は無用な情報まで山ほどヒットしてくれる  d. Platform SDKのヘルプ   ・最新のSDKであるだけに、付属のインクルードファイルやライブラリを    使わないとコンパイルできないAPIがある   ・このヘルプで「新しいアプリはこっちのAPIを使用せよ」と書かれている    通りにそのAPIを使うと、Windows 98でしか動かない代物ができることが    ある:-)   ・IEのバージョンとかWindowsのバージョンを予めソース内で定義してやらない    と「そんな関数なぞ知らん」とか言われてしまう。Microsoftはどうやら    開き直ったらしい。まぁIEはOSの一部なんだから、IEのバージョンが違うと    コンパイルが通らなくても当然なのだろうが……    #if defined(MS_OFFICE2000_INSTALLED)...    なんてーのがwindows.hにないだけましかも?  で、これらの使い分けですけど。  a:引退したマシンに入れて、既知の関数の使い方を確認する時に使用  b:ちょっと調べる時に(世間様のアプリ - もちろんMS製のソレを除く - がみんな    やっていることを自分でもやりたい、とか思った時に)  c:それなりに調べる時に(こんなことがしたいけど、やってるアプリを見たことない、    とか思った時とか)  d:最新、あるいは将来のマシンでだけ動けばよろしい。という機能を使う場合に    使用。たとえばActive desktopにちょっかい出すときとか                                − 以上 −