さて、前のページまでの準備で、実際にWisdomSoftさんで勉強できるようになりました。しかし、中にはうまくいかない章もあるでしょう。『全てのサンプルをビルドできるように・・・』と大風呂敷を広げてしまった以上、全サンプルを確認してみました。(疲れましたw。でも、赤坂さんはその何百倍も大変なわけです。ホント尊敬します。)
現在気づいたものを書き込んでいます。今後増えるかもしれません。また、警告のみのものは載せていません。私の環境での結果なので、皆さんの環境では違った結果になることも多いかと思います。
・C言語入門 #と##演算子 2番目のサンプルで文字化けします。
・C言語入門 記憶クラス 複数のファイルをコンパイルするの項は、私の秀丸マクロでは対応していません。Reloのページを参照してください。
・C言語入門 動的メモリ 2番目のサンプルは間違っています。文頭の"<"を取り除いてください。
・C++入門 実行時型情報 上から3番目のサンプルは、#include<typeinfo>の一文を挿入してください。
・Win32 API入門 ラジオボタン グループ化のサンプルで、文頭に余計なsが付いているので取り除きます。
・Win32 API入門 DDBの作成 2番目のサンプルは、22行目あたりに
bmBitmap.bmWidthBytes = 6;
の一文を挿入する必要があります。詳しくはここをご覧ください。
・Win32 API入門 タイプフェイス 38行目 EnumFontFamiliesExの第3引数の前に(FONTENUMPROC)を加えて型キャストしてください。
・Win32 API入門 ウィンドウの列挙 2番目のサンプルで、resource.h の最終行に 0x3001 を付け足します。
・Win32 API入門 ダイナミックリンク
下から2番目のソース:秀丸マクロを一時的に書き換える必要があります。
bcc.macの
insert "bcc32 -W -w- "+$source_file+"\n";
を
insert "bcc32 -W -w- "+$source_file+" dll_test.lib\n";
に書きかえて上書き保存してください。この章の演習が終わったら元に戻しておいてください。
・Win32 API入門 ファイルマッピング
最後のソース:秀丸マクロを一時的に書き換える必要があります。
bcc.macの
insert "bcc32 -W -w- "+$source_file+"\n";
を
insert "bcc32 -W -w- "+$source_file+" dll_test.lib\n";
に書きかえて上書き保存してください。この章の演習が終わったら元に戻しておいてください。
・Win32 API入門 プロパティーシート "未定義のシンボル"のエラーが出る場合は、Cソースの文頭に
#define DUMMYUNIONNAME
#define DUMMYUNIONNAME2
#define DUMMYUNIONNAME3
の3行を挿入してください。
・Win32 API入門 ウィザード すぐ前の章と同じ対処法です。それに加えて、リソーススクリプトの16行目のENDに対しても予約語のエラーが出るので、別の名前に変えてください。それに伴い、Cのソース54行目もその名前に変えてください。
・Win32 API入門 ツリービュー "未定義のシンボル"のエラーが出る場合は、Cソースの文頭に #define
DUMMYUNIONNAME を1行挿入してください。
・全般的に、コードの文末に改行なしでEOFが来るとエラーになります。
・C言語入門 型修飾子 最後のサンプルをビルドして実行するとエラーが出ます。
・C言語入門 記憶クラス 複数のファイルをコンパイルするの項は、秀丸マクロで対応していません。Reloのページを参照してください。
・C言語入門 動的メモリの2番目のサンプルが間違っています。文頭の"<"を取り除いてください。
・C言語入門 printf()関数 最小フィールド幅・・・の項の最後のサンプルで、ビルドはできるが、望ましい結果が得られません。
・C言語入門 scanf()関数 下から3番目のサンプルで、ビルドはできるが、望ましい結果が得られません。
・C++入門 基本入出力 上から3番目のサンプルはビルドできません。<iostream.h>はサポートしていません。
・C++入門 実行時型情報 上から2番目のサンプルは、#inclide<time.h>の一文を挿入してください。
・Win32 API入門 ラジオボタン グループ化のサンプルで、文頭に余計なsが付いているので取り除きます。
・Win32 API入門 メニューメッセージ リソーススクリプトで
STRINGTABLE {
IDM_HIZAPA "拾った猫が次の日猫耳少女に!\012"
"猫耳育成ゲームの決定版"
IDM_TARUTO "魔法使いの猫耳少女たると\012"
"彼女は自分が姫君だと思いこむが、はたして真相は…"
}
を
STRINGTABLE {
IDM_HIZAPA "拾った猫が次の日猫耳少女に!\012猫耳育成ゲームの決定版"
IDM_TARUTO "魔法使いの猫耳少女たると\012彼女は自分が姫君だと思いこむが、はたして真相は…"
}
のように途中の改行を取り去る必要があります。
・Win32 API入門 ポップアップ リソーススクリプトで、MENUITEM "Magical nyan nyan TARUTO"で、TARUTO"
のあとに ,40007を付けてください。
・以下のWin32APIページのサンプルは、リソーススクリプトに #include <windows.h>
を挿入してください。
アクセラレータ
ダイアログの2番目
ダイアログの内容の2番目
ダイアログとキー
カスタムコントロール
モードレス
ダイアログウィンドウ
テンプレート
MCIで録音
・Win32 API入門 DDBの作成 2番目のサンプルは、22行目あたりに
bmBitmap.bmWidthBytes = 6;
の一文を挿入する必要があります。詳しくはここをご覧ください。
・Win32 API入門 ウィンドウの列挙 2番目のサンプルで、resource.h の最終行に 0x3001 を付け足します。
・Win32 API入門 ダイナミックリンク
下から2番目のソース:秀丸マクロを一時的に書き換える必要があります。
cl.macのwinmm.libの後ろに半角スペースを空けて、dll_test.libを書き加えて上書き保存してください。この章の演習が終わったら元に戻しておいてください。
最後のソース:16行目"GetCenter"を"_GetCenter@8"に書き換えてからコンパイル。→文末の注を参照
・Win32 API入門 ファイルマッピング
最後のソース:秀丸マクロを一時的に書き換える必要があります。
cl.macのwinmm.libの後ろに半角スペースを空けて、dll_test.libを書き加えて上書き保存してください。この章の演習が終わったら元に戻しておくこと。
注)
DLLを呼び出すときの関数名がMS流儀なのですが、初心者には分かりにくいです。DLLをeXeScopeのようなソフトで分析してExportを見ることで確認できます。BCCをインストールした方は、binフォルダに
impdef.exe というファイルがあるので、それを使ってもOKです。dll_test.dllを調べるときは、コマンドプロンプトから
impdef dll_test.def dll_test.dll
と入力するとdll_test.defというファイルが作成されます。このファイルを秀丸で開くと、呼び出すときに使う名前が見つかると思います。