Table of contents
GO(C言語)でOSASKアプリを作ってみよう、のページ
- (by K, 2005.03.15)
- 姉妹ページ
- guide/nask:C言語じゃなくてnaskでやりたい人
- guide/ASKA:C言語じゃなくてASKAでやりたい人
まずは開発環境の入手
- downloads/devのページへ行って、最新版のところの、「tolset08」というやつをダウンロードしてください(lzhでもsarでもどっちでもOK)。
- 2MB強ありますが、これはCコンパイラとかテストラン用のOSASKやエミュレータなどが入っているせいです。すみません。
- もしかしたらバージョンアップしてtolset09とかになっているかもしれません。その辺は臨機応変でお願いします。
- 2006.05.08での最新版はtolset_hです。
- Win95/98/Meの人はフォルダ名を少し直す必要があります(こめんと欄 2006.07.29 参照)。
- これをどこでもいいですので、適当なところに解凍します。
プロジェクト作成
- 次に、新規にアプリを作りますので、z_new_oというディレクトリを探してください。これをコピーして、同じディレクトリにペーストします。すると、「コピー ~ z_new_o」とかいう名前のフォルダができます。これを「chelo」にリネームしてください。
- もちろん他の好きな名前でもいいですよ。
- 改名が済んだら、cheloの中に入って、Makefileを探し、これをテキストエディタで開きます。とりあえずはメモ帳で十分です。
- そして一番上の行のTARGETの記述を以下のように直します。
TARGET = chelo
- 最後にcheloの中で 右クリック→新規作成→テキストドキュメント とやって、新規テキストドキュメントを作ります。そしてこれを、「chelo.c」に改名します。拡張子を変更するとどうたらこーたらとかいいますが、無視してOKしてください。
ソース作成
- さて、それではchelo.cを開いて、以下のソースをがしがしと入力してください。
#include <guigui00.h> #define AUTO_MALLOC 0 void OsaskMain() { struct LIB_WINDOW *window; struct LIB_TEXTBOX *wintitle, *textbox; lib_init(AUTO_MALLOC); window = lib_openwindow(AUTO_MALLOC, 0x0200, 136, 48); wintitle = lib_opentextbox(0x1000, AUTO_MALLOC, 0, 5, 1, 0, 0, window, 0x00c0, 0); textbox = lib_opentextbox(0x0000, AUTO_MALLOC, 0, 12, 1, 16, 16, window, 0x00c0, 0); lib_putstring_ASCII(0x0000, 0, 0, wintitle, 0, 0, "chelo"); lib_putstring_ASCII(0x0000, 0, 0, textbox, 0, 0, "hello, world"); lib_waitsignal(0x0001, 0, 0); }
どうやって実行ファイルを作るの?
- まず、コンソールを開きます。開き方は使っているOSによって違います。
- Win2000, WinXPなどのNT系: !cons_nt.batをダブルクリック
- Win95, Win98などの9X系: !cons_9x.batをダブルクリック
- コンソールが出てきたら、makeとだけうってEnterを押してください。
- これだけでリンクまで全自動でやってくれます。
- できたアプリは、chelo.binです。
- tolset08で作った場合は多分452バイトです。
どうやってテスト実行するの?
- 同じくコンソールから、make runとだけうってEnterを押してください。
- しばらく待っていると、勝手にOSASKがエミュレータ環境で起動します。
- で、pokonの一番上の、 !BUILT.BIN を実行してください。
- うまくいけばウィンドウが表示されます。
もっと詳しく説明してくれー
- 続編:guide/wintro0000
- 待てない人のための参考資料:
- I.Tak.さんのAPI資料: http://user.ecc.u-tokyo.ac.jp/~t40370/osask/p0cref.html
- GUIGUI00_man
こめんと欄
- すみません、make run のところでエラーが出るのですが、どうすればよいですか? -- coze 2005-06-27 (月) 21:04:37
C:¥osask¥tolset08¥chelo>make C:¥osask¥tolset08¥chelo>..¥z_tools¥make.exe ../z_tools/make.exe -r chelo.bin make.exe[1]: Entering directory `C:/osask/tolset08/chelo' ../z_tools/sjisconv.exe -s chelo.c chelo.ca ../z_tools/cc1.exe -I../z_tools/guigui00/ -Os -Wall -quiet -o chelo.gas chelo.ca ../z_tools/gas2nask.exe -a chelo.gas chelo.nas ../z_tools/nask.exe chelo.nas chelo.obj ../z_tools/obj2bim.exe @../z_tools/guigui00/guigui00.rul out:chelo.bim stack:64k map: chelo.map chelo.obj ../z_tools/bim2bin.exe in:chelo.bim out:chelo.org malloc:256k mmarea:0 -v48a ../z_tools/bim2bin.exe -osacmp in:chelo.org out:chelo.bin -tek5 clv:5 eopt: eprm: rm chelo.gas chelo.nas chelo.ca make.exe[1]: Leaving directory `C:/osask/tolset08/chelo'
C:¥osask¥tolset08¥chelo>ls !cons_9x.bat Makefile chelo.bin chelo.c.1~ chelo.obj make.bat !cons_nt.bat chelo.bim chelo.c chelo.map chelo.org
C:¥osask¥tolset08¥chelo>make run C:¥osask¥tolset08¥chelo>..¥z_tools¥make.exe run ../z_tools/make.exe -r chelo.bin make.exe[1]: Entering directory `C:/osask/tolset08/chelo' make.exe[1]: `chelo.bin' is up to date. make.exe[1]: Leaving directory `C:/osask/tolset08/chelo' copy chelo.bin ..¥z_tools¥!built.bin process_begin: CreateProcess((null), copy chelo.bin ..¥z_tools¥!built.bin, ...) failed. make (e=2): 指定されたファイルが見つかりません。 ..¥z_tools¥make.exe: *** [run] Error 2
- make, make run を実行すると上のようになります。 -- coze 2005-06-27 (月) 21:06:43
- これはおそらくCygwin環境だと思われます。Cygwinのデフォルトではcopyコマンドに干渉するため、こういうエラーが出るのです。たぶん環境変数PATHに「C:¥cygwin¥bin」みたいなパスが追加されていると思います。それを削除すればとりあえずうまくいくようになります。・・・この問題はどちらかというとtolset側の問題であるというよりはCygwinが過剰にWindowsに干渉していることが問題だと思いますので、tolsetの不具合ではないと僕は思っています。ですからこれ以上の対策が必要だと思われる場合は、Cygwin側に対処を要望してください。 -- K 2005-06-27 (月) 21:32:02
- Kさん、ありがとうございます。C:¥cygwin¥bin へのパスを外す事で、うまく実行できました。 -- coze 2005-06-27 (月) 22:04:32
- すみません。また make run でつまづいてしまいました。Win95 で実行しています。make はうまくいっていて、chelo.bin は無事に作成できました(451 バイト)。それから make run を実行してみますと -- coze 2005-08-07 (日) 12:06:48
qemu.exe -L . -m 32 -localtime -std-vga -fda fdimage0.bin process_begin: CreateProcess(C:/osa/tolset08/z_tools/qemu/qemu.exe, eqmu.exe -L . -m 32 -localtime -std-vga -fda fdimage0.bin, ...) failed. make (e=1157): このアプリケーションの実行に必要なライブラリファイルのうちの1つが見つかりません。 make.exe[1] *** [ALL] Error 1157 make.exe[1]: Leaving directory 'C:/osa/tolset08/z_tools/qemu' C:¥OSA¥TOLSET08¥Z_TOOLS¥make.EXE: *** [run] Error 2
- となります。ライブラリファイルが見つからないと言っているのですが、具体的にどのファイルが見つかっていないのでしょうか? -- coze 2005-08-07 (日) 12:09:13
- eqmu.exeはタイプミスでしょうか、じゃなかったらファイルが間違ってるので直せば動くかもしれません。makeにたよらずに、qemuを直接実行してみると、何か分かるかもしれません。fdimage0.binがqemuと同じディレクトリにあれば動くと思うんですが。 -- くーみん 2005-08-07 (日) 17:22:46
- くーみんさん、ありがとうございます。eqmu.exe は、掲示板に書き込む際にタイプミスしていました。すみません。実際には qemu.exe となっています。それで make を使わずにやってみました。 -- coze 2005-08-07 (日) 21:16:01
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' またはその構成ファイルが見つかりません。 パスとファイル名が正しいか、すべての必要なライブラリが利用可能であるか、確認してください。
- となってしまいます……。上記を実行するときに、タイトルバーに「プログラム開始エラー」と書かれたダイアログボックスが表示されます(ウィンドウの中には、! マークのアイコンと OK ボタンのみで、テキストは何も書かれていないです)。dir コマンドを実行すると下のようになりました。 -- coze 2005-08-07 (日) 21:16:30
C:¥osa¥tolset08¥z_tools¥qemu>dir . <DIR> 05-08-07 10:17 . .. <DIR> 05-08-07 10:17 .. BIOS BIN 65,536 04-11-16 7:10 bios.bin MAKEFILE 68 05-01-12 11:51 Makefile VGABIOS BIN 9,651 04-04-24 1:29 vgabios.bin QEMU EXE 249,344 04-11-16 7:10 qemu.exe FDIMAGE0 BIN 1,474,560 05-08-07 10:18 fdimage0.bin SDL DLL 125,952 04-11-16 7:11 SDL.dll 7 個 1,925,111 バイトのファイルがあります. 2 ディレクトリ 440,139,776 バイトの空きがあります.
- そういえば、おいらのWindows95(Libretto50)ではqemuが動きませんでした(OSC2005-Doの会場でわかったという…)。ひょっとしたらWin95はqemu非対応かも知れません。 -- あっきぃ 2005-08-07 (日) 21:22:37
- あっきぃさんの場合も僕と同じようなエラーメッセージですか? Win95 では動かないというのもあるのかもしれませんね。僕はこういったことにうといので、少しずつ弄ってみようと思います。ありがとうございました。 -- coze 2005-08-09 (火) 00:51:59
- たしかおいらはバッチファイルからだったと思います。きっとバッチファイルでは分からないエラーが出力されているんだと思います。 -- あっきぃ 2005-08-09 (火) 00:58:09
- うーん、Win95ではtolset08の「make run」がうまく行かない可能性があるのかもしれませんね。後日こちらでも実験してみたいと思います。他の人で、似たような現象を経験した人、もしくはWin95だけど問題なく動いた人、おられましたらご報告ください。 -- K 2005-08-09 (火) 13:55:41
- NEC PC-9821 Nb7、Win95 で make run を試してみました。実行してみると、上の場合と同様のエラーが表示されました。その際、「プログラム開始エラー」ダイアログが出て「IPHLPAPI.DLL が見つかりません」と表示されました。何かの参考になればと思います。 -- coze 2005-09-17 (土) 18:08:40
- IPHLPAPI.DLLはIEに含まれるものだそうです。 -- mac12 2006-07-28 (金) 22:23:19
- Win95対策版は既にあります。上記にあるとおり最新版のtolset_hを使ってください。z_toolsの中のqemuフォルダをqemu_ntと改名し、qemu_9xフォルダをqemuと改名すれば準備完了です。 -- K 2006-07-29 (土) 09:30:27
Counter: 348,
today: 1,
yesterday: 1
Princeps date: 2005-03-15 (Tue) 20:54:20
Last-modified: 2010-04-10 (Sat) 00:00:00 (JST) (310d) by k-tan
|
Page Info | Can Read | Can Edit | |||
---|---|---|---|---|---|---|
Page Name : | guide/C | Groups : | All visitors | Groups : | All visitors | |
Page owner : | k-tan | Users : | All visitors | Users : | All visitors | |
Page aliases : | None |