6: 2005-08-07 (日) 21:22:37 [6] | 現: 2024-01-08 (月) 12:58:56 k-tan[7] [8] | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | * GO(C言語)でOSASKアプリを作ってみよう、のページ | + | TITLE:x |
+ | * GO(C言語)でOSASKアプリを作ってみよう、のページ [#u84fa57c] | ||
-(by [[K]], 2005.03.15) | -(by [[K]], 2005.03.15) | ||
Line 6: | Line 7: | ||
--[[guide/ASKA]]:C言語じゃなくてASKAでやりたい人 | --[[guide/ASKA]]:C言語じゃなくてASKAでやりたい人 | ||
- | *** まずは開発環境の入手 | + | *** まずは開発環境の入手 [#ob455183] |
-[[downloads/dev]]のページへ行って、''最新版''のところの、「tolset08」というやつをダウンロードしてください(lzhでもsarでもどっちでもOK)。 | -[[downloads/dev]]のページへ行って、''最新版''のところの、「tolset08」というやつをダウンロードしてください(lzhでもsarでもどっちでもOK)。 | ||
--2MB強ありますが、これはCコンパイラとかテストラン用のOSASKやエミュレータなどが入っているせいです。すみません。 | --2MB強ありますが、これはCコンパイラとかテストラン用のOSASKやエミュレータなどが入っているせいです。すみません。 | ||
--もしかしたらバージョンアップしてtolset09とかになっているかもしれません。その辺は臨機応変でお願いします。 | --もしかしたらバージョンアップしてtolset09とかになっているかもしれません。その辺は臨機応変でお願いします。 | ||
+ | --2006.05.08での最新版は[[tolset_h:http://hrb.osask.jp/tolset_h.zip]]です。 | ||
+ | --Win95/98/Meの人はフォルダ名を少し直す必要があります(こめんと欄 2006.07.29 参照)。 | ||
-これをどこでもいいですので、適当なところに解凍します。 | -これをどこでもいいですので、適当なところに解凍します。 | ||
- | *** プロジェクト作成 | + | *** プロジェクト作成 [#ied6576b] |
-次に、新規にアプリを作りますので、z_new_oというディレクトリを探してください。これをコピーして、同じディレクトリにペーストします。すると、「コピー ~ z_new_o」とかいう名前のフォルダができます。これを「chelo」にリネームしてください。 | -次に、新規にアプリを作りますので、z_new_oというディレクトリを探してください。これをコピーして、同じディレクトリにペーストします。すると、「コピー ~ z_new_o」とかいう名前のフォルダができます。これを「chelo」にリネームしてください。 | ||
--もちろん他の好きな名前でもいいですよ。 | --もちろん他の好きな名前でもいいですよ。 | ||
Line 20: | Line 23: | ||
-最後にcheloの中で 右クリック→新規作成→テキストドキュメント とやって、新規テキストドキュメントを作ります。そしてこれを、「chelo.c」に改名します。拡張子を変更するとどうたらこーたらとかいいますが、無視してOKしてください。 | -最後にcheloの中で 右クリック→新規作成→テキストドキュメント とやって、新規テキストドキュメントを作ります。そしてこれを、「chelo.c」に改名します。拡張子を変更するとどうたらこーたらとかいいますが、無視してOKしてください。 | ||
- | *** ソース作成 | + | *** ソース作成 [#e05ddb74] |
-さて、それではchelo.cを開いて、以下のソースをがしがしと入力してください。 | -さて、それではchelo.cを開いて、以下のソースをがしがしと入力してください。 | ||
#include <guigui00.h> | #include <guigui00.h> | ||
#define AUTO_MALLOC 0 | #define AUTO_MALLOC 0 | ||
+ | |||
void OsaskMain() | void OsaskMain() | ||
{ | { | ||
struct LIB_WINDOW *window; | struct LIB_WINDOW *window; | ||
struct LIB_TEXTBOX *wintitle, *textbox; | struct LIB_TEXTBOX *wintitle, *textbox; | ||
+ | |||
lib_init(AUTO_MALLOC); | lib_init(AUTO_MALLOC); | ||
window = lib_openwindow(AUTO_MALLOC, 0x0200, 136, 48); | window = lib_openwindow(AUTO_MALLOC, 0x0200, 136, 48); | ||
Line 38: | Line 41: | ||
lib_waitsignal(0x0001, 0, 0); | lib_waitsignal(0x0001, 0, 0); | ||
} | } | ||
- | + | ||
- | *** どうやって実行ファイルを作るの? | + | *** どうやって実行ファイルを作るの? [#cbae0369] |
-まず、コンソールを開きます。開き方は使っているOSによって違います。 | -まず、コンソールを開きます。開き方は使っているOSによって違います。 | ||
--Win2000, WinXPなどのNT系: !cons_nt.batをダブルクリック | --Win2000, WinXPなどのNT系: !cons_nt.batをダブルクリック | ||
Line 48: | Line 51: | ||
--tolset08で作った場合は多分452バイトです。 | --tolset08で作った場合は多分452バイトです。 | ||
- | *** どうやってテスト実行するの? | + | *** どうやってテスト実行するの? [#j6a70fe8] |
-同じくコンソールから、make runとだけうってEnterを押してください。 | -同じくコンソールから、make runとだけうってEnterを押してください。 | ||
-しばらく待っていると、勝手にOSASKがエミュレータ環境で起動します。 | -しばらく待っていると、勝手にOSASKがエミュレータ環境で起動します。 | ||
Line 54: | Line 57: | ||
-うまくいけばウィンドウが表示されます。 | -うまくいけばウィンドウが表示されます。 | ||
- | *** 雑な説明 | + | *** 雑な説明 [#e0b725a7] |
-結局のところ、これはAPIを呼び出しているだけです。lib_で始まる関数は全てAPI呼び出しです。 | -結局のところ、これはAPIを呼び出しているだけです。lib_で始まる関数は全てAPI呼び出しです。 | ||
- | *** もっと詳しく説明してくれー | + | *** もっと詳しく説明してくれー [#y06eff7f] |
-続編:[[guide/wintro0000]] | -続編:[[guide/wintro0000]] | ||
~ | ~ | ||
Line 65: | Line 68: | ||
--[[GUIGUI00_man]] | --[[GUIGUI00_man]] | ||
- | * こめんと欄 | + | * こめんと欄 [#p50558c1] |
-すみません、make run のところでエラーが出るのですが、どうすればよいですか? -- ''coze'' &new{2005-06-27 (月) 21:04:37}; | -すみません、make run のところでエラーが出るのですが、どうすればよいですか? -- ''coze'' &new{2005-06-27 (月) 21:04:37}; | ||
- | C:\osask\tolset08\chelo>make | + | C:¥osask¥tolset08¥chelo>make |
- | + | ||
- | C:\osask\tolset08\chelo>..\z_tools\make.exe | + | C:¥osask¥tolset08¥chelo>..¥z_tools¥make.exe |
../z_tools/make.exe -r chelo.bin | ../z_tools/make.exe -r chelo.bin | ||
make.exe[1]: Entering directory `C:/osask/tolset08/chelo' | make.exe[1]: Entering directory `C:/osask/tolset08/chelo' | ||
Line 84: | Line 87: | ||
make.exe[1]: Leaving directory `C:/osask/tolset08/chelo' | make.exe[1]: Leaving directory `C:/osask/tolset08/chelo' | ||
- | C:\osask\tolset08\chelo>ls | + | C:¥osask¥tolset08¥chelo>ls |
!cons_9x.bat Makefile chelo.bin chelo.c.1~ chelo.obj make.bat | !cons_9x.bat Makefile chelo.bin chelo.c.1~ chelo.obj make.bat | ||
!cons_nt.bat chelo.bim chelo.c chelo.map chelo.org | !cons_nt.bat chelo.bim chelo.c chelo.map chelo.org | ||
- | C:\osask\tolset08\chelo>make run | + | C:¥osask¥tolset08¥chelo>make run |
- | + | ||
- | C:\osask\tolset08\chelo>..\z_tools\make.exe run | + | C:¥osask¥tolset08¥chelo>..¥z_tools¥make.exe run |
../z_tools/make.exe -r chelo.bin | ../z_tools/make.exe -r chelo.bin | ||
make.exe[1]: Entering directory `C:/osask/tolset08/chelo' | make.exe[1]: Entering directory `C:/osask/tolset08/chelo' | ||
make.exe[1]: `chelo.bin' is up to date. | make.exe[1]: `chelo.bin' is up to date. | ||
make.exe[1]: Leaving directory `C:/osask/tolset08/chelo' | make.exe[1]: Leaving directory `C:/osask/tolset08/chelo' | ||
- | copy chelo.bin ..\z_tools\!built.bin | + | copy chelo.bin ..¥z_tools¥!built.bin |
- | process_begin: CreateProcess((null), copy chelo.bin ..\z_tools\!built.bin, ...) failed. | + | process_begin: CreateProcess((null), copy chelo.bin ..¥z_tools¥!built.bin, ...) failed. |
make (e=2): 指定されたファイルが見つかりません。 | make (e=2): 指定されたファイルが見つかりません。 | ||
- | ..\z_tools\make.exe: *** [run] Error 2 | + | ..¥z_tools¥make.exe: *** [run] Error 2 |
-make, make run を実行すると上のようになります。 -- ''coze'' &new{2005-06-27 (月) 21:06:43}; | -make, make run を実行すると上のようになります。 -- ''coze'' &new{2005-06-27 (月) 21:06:43}; | ||
- | -これはおそらくCygwin環境だと思われます。Cygwinのデフォルトではcopyコマンドに干渉するため、こういうエラーが出るのです。たぶん環境変数PATHに「C:\cygwin\bin」みたいなパスが追加されていると思います。それを削除すればとりあえずうまくいくようになります。・・・この問題はどちらかというとtolset側の問題であるというよりはCygwinが過剰にWindowsに干渉していることが問題だと思いますので、tolsetの不具合ではないと僕は思っています。ですからこれ以上の対策が必要だと思われる場合は、Cygwin側に対処を要望してください。 -- [[K]] &new{2005-06-27 (月) 21:32:02}; | + | -これはおそらくCygwin環境だと思われます。Cygwinのデフォルトではcopyコマンドに干渉するため、こういうエラーが出るのです。たぶん環境変数PATHに「C:¥cygwin¥bin」みたいなパスが追加されていると思います。それを削除すればとりあえずうまくいくようになります。・・・この問題はどちらかというとtolset側の問題であるというよりはCygwinが過剰にWindowsに干渉していることが問題だと思いますので、tolsetの不具合ではないと僕は思っています。ですからこれ以上の対策が必要だと思われる場合は、Cygwin側に対処を要望してください。 -- [[K]] &new{2005-06-27 (月) 21:32:02}; |
- | -Kさん、ありがとうございます。C:\cygwin\bin へのパスを外す事で、うまく実行できました。 -- ''coze'' &new{2005-06-27 (月) 22:04:32}; | + | -Kさん、ありがとうございます。C:¥cygwin¥bin へのパスを外す事で、うまく実行できました。 -- ''coze'' &new{2005-06-27 (月) 22:04:32}; |
+ | ---- | ||
-すみません。また make run でつまづいてしまいました。Win95 で実行しています。make はうまくいっていて、chelo.bin は無事に作成できました(451 バイト)。それから make run を実行してみますと -- [[coze]] &new{2005-08-07 (日) 12:06:48}; | -すみません。また make run でつまづいてしまいました。Win95 で実行しています。make はうまくいっていて、chelo.bin は無事に作成できました(451 バイト)。それから make run を実行してみますと -- [[coze]] &new{2005-08-07 (日) 12:06:48}; | ||
Line 109: | Line 113: | ||
make.exe[1] *** [ALL] Error 1157 | make.exe[1] *** [ALL] Error 1157 | ||
make.exe[1]: Leaving directory 'C:/osa/tolset08/z_tools/qemu' | make.exe[1]: Leaving directory 'C:/osa/tolset08/z_tools/qemu' | ||
- | C:\OSA\TOLSET08\Z_TOOLS\make.EXE: *** [run] Error 2 | + | C:¥OSA¥TOLSET08¥Z_TOOLS¥make.EXE: *** [run] Error 2 |
-となります。ライブラリファイルが見つからないと言っているのですが、具体的にどのファイルが見つかっていないのでしょうか? -- [[coze]] &new{2005-08-07 (日) 12:09:13}; | -となります。ライブラリファイルが見つからないと言っているのですが、具体的にどのファイルが見つかっていないのでしょうか? -- [[coze]] &new{2005-08-07 (日) 12:09:13}; | ||
-eqmu.exeはタイプミスでしょうか、じゃなかったらファイルが間違ってるので直せば動くかもしれません。makeにたよらずに、qemuを直接実行してみると、何か分かるかもしれません。fdimage0.binがqemuと同じディレクトリにあれば動くと思うんですが。 -- ''くーみん'' &new{2005-08-07 (日) 17:22:46}; | -eqmu.exeはタイプミスでしょうか、じゃなかったらファイルが間違ってるので直せば動くかもしれません。makeにたよらずに、qemuを直接実行してみると、何か分かるかもしれません。fdimage0.binがqemuと同じディレクトリにあれば動くと思うんですが。 -- ''くーみん'' &new{2005-08-07 (日) 17:22:46}; | ||
Line 115: | Line 119: | ||
- | C:\osa\tolset08\z_tools\qemu>qemu.exe -L . -m 32 -localtime -std-vga -fda fdimage0.bin | + | C:¥osa¥tolset08¥z_tools¥qemu>qemu.exe -L . -m 32 -localtime -std-vga -fda fdimage0.bin |
- | ファイル 'C:\OSA\TOLSET08\Z_TOOLS\QEMU\QEMU.EXE' またはその構成ファイルが見つかりません。 | + | ファイル 'C:¥OSA¥TOLSET08¥Z_TOOLS¥QEMU¥QEMU.EXE' またはその構成ファイルが見つかりません。 |
パスとファイル名が正しいか、すべての必要なライブラリが利用可能であるか、確認してください。 | パスとファイル名が正しいか、すべての必要なライブラリが利用可能であるか、確認してください。 | ||
-となってしまいます……。上記を実行するときに、タイトルバーに「プログラム開始エラー」と書かれたダイアログボックスが表示されます(ウィンドウの中には、! マークのアイコンと OK ボタンのみで、テキストは何も書かれていないです)。dir コマンドを実行すると下のようになりました。 -- [[coze]] &new{2005-08-07 (日) 21:16:30}; | -となってしまいます……。上記を実行するときに、タイトルバーに「プログラム開始エラー」と書かれたダイアログボックスが表示されます(ウィンドウの中には、! マークのアイコンと OK ボタンのみで、テキストは何も書かれていないです)。dir コマンドを実行すると下のようになりました。 -- [[coze]] &new{2005-08-07 (日) 21:16:30}; | ||
- | C:\osa\tolset08\z_tools\qemu>dir | + | C:¥osa¥tolset08¥z_tools¥qemu>dir |
+ | |||
. <DIR> 05-08-07 10:17 . | . <DIR> 05-08-07 10:17 . | ||
.. <DIR> 05-08-07 10:17 .. | .. <DIR> 05-08-07 10:17 .. | ||
Line 134: | Line 138: | ||
2 ディレクトリ 440,139,776 バイトの空きがあります. | 2 ディレクトリ 440,139,776 バイトの空きがあります. | ||
-そういえば、おいらのWindows95(Libretto50)ではqemuが動きませんでした(OSC2005-Doの会場でわかったという…)。ひょっとしたらWin95はqemu非対応かも知れません。 -- [[あっきぃ]] &new{2005-08-07 (日) 21:22:37}; | -そういえば、おいらのWindows95(Libretto50)ではqemuが動きませんでした(OSC2005-Doの会場でわかったという…)。ひょっとしたらWin95はqemu非対応かも知れません。 -- [[あっきぃ]] &new{2005-08-07 (日) 21:22:37}; | ||
+ | -あっきぃさんの場合も僕と同じようなエラーメッセージですか? Win95 では動かないというのもあるのかもしれませんね。僕はこういったことにうといので、少しずつ弄ってみようと思います。ありがとうございました。 -- [[coze]] &new{2005-08-09 (火) 00:51:59}; | ||
+ | -たしかおいらはバッチファイルからだったと思います。きっとバッチファイルでは分からないエラーが出力されているんだと思います。 -- ''あっきぃ'' &new{2005-08-09 (火) 00:58:09}; | ||
+ | -うーん、Win95ではtolset08の「make run」がうまく行かない可能性があるのかもしれませんね。後日こちらでも実験してみたいと思います。他の人で、似たような現象を経験した人、もしくはWin95だけど問題なく動いた人、おられましたらご報告ください。 -- [[K]] &new{2005-08-09 (火) 13:55:41}; | ||
+ | -NEC PC-9821 Nb7、Win95 で make run を試してみました。実行してみると、上の場合と同様のエラーが表示されました。その際、「プログラム開始エラー」ダイアログが出て「IPHLPAPI.DLL が見つかりません」と表示されました。何かの参考になればと思います。 -- ''coze'' &new{2005-09-17 (土) 18:08:40}; | ||
+ | -IPHLPAPI.DLLはIEに含まれるものだそうです。 -- ''mac12'' &new{2006-07-28 (金) 22:23:19}; | ||
+ | -Win95対策版は既にあります。上記にあるとおり最新版のtolset_hを使ってください。z_toolsの中のqemuフォルダをqemu_ntと改名し、qemu_9xフォルダをqemuと改名すれば準備完了です。 -- [[K]] &new{2006-07-29 (土) 09:30:27}; | ||
- | #comment | + | //#comment |
(This host) = http://osask.net