3: 2004-10-03 (日) 17:01:06 |
現: 2024-01-08 (月) 12:58:51 ゲスト |
| 削除できたら、それをvcgg00.hという名前で保存します。 | | 削除できたら、それをvcgg00.hという名前で保存します。 |
| | | |
- | 今度から、C++でアプリを書くときは、このvcgg00.hをインクルードします。 | + | 今度から、C++でアプリを書くときは、このvcgg00.hをextern "C"でインクルードします。 |
| | | |
| ** | | ** |
| vcgg00.hは、guigui00.hと同じフォルダにコピーする。~ | | vcgg00.hは、guigui00.hと同じフォルダにコピーする。~ |
| C++アプリを作るときは、guigui00.hのかわりにvcgg00.hをインクルードするようにする。 | | C++アプリを作るときは、guigui00.hのかわりにvcgg00.hをインクルードするようにする。 |
| + | |
| + | **追記2004.10.4 |
| + | この設定だとライブラリが作れないなどの問題があるようです。それを解決するには、まずcl.exeにパスを通し、次に、com_mak.txtの |
| + | CL = $(VCToolKitInstallDir)bin\cl.exe -I$(INCPATH) /c |
| + | を |
| + | CL = cl.exe -I$(INCPATH) -c |
| + | とします。これで正常動作するはず。 |
| + | パスの通し方は[[ここ:http://www.geocities.co.jp/CollegeLife-Library/2783/index.html]]を参照 |
| + | |
| + | **試行錯誤した結果ようやく実行できたはろーわーるど |
| + | |
| + | -ちなみにMLからダウンロードできるosa_dir2はcom_mak.txtのみの変更ですむようです(extern __inline__ void ... のくだりは存在せず)。 |
| + | -VCを持ってる人は先にVCVARS32.BATを実行してからmakeするとパス等は全部面倒みてくれるようです。 |
| + | |
| + | /* "helloc4.cpp":helloをC++言語で記述した例 */ |
| + | /* stack:4k malloc:1k */ |
| + | |
| + | /* このソースの説明が"helloc4.txt"に書かれています */ |
| + | |
| + | extern "C" { |
| + | #include <guigui00.h> |
| + | void OsaskMain(); |
| + | } |
| + | |
| + | #define AUTO_MALLOC 0 |
| + | |
| + | class helloc4 { |
| + | public: |
| + | helloc4(); |
| + | ~helloc4(); |
| + | }; |
| + | |
| + | helloc4::helloc4() { |
| + | 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, 7, 1, 0, 0, window, 0x00c0, 0); |
| + | |
| + | /* "hello, world"を表示するためのテキストボックスをオープン */ |
| + | textbox = lib_opentextbox(0x0000, AUTO_MALLOC, 0, 12, 1, 16, 16, window, 0x00c0, 0); |
| + | |
| + | /* ウィンドウタイトルを表示 */ |
| + | lib_putstring_ASCII(0x0000, 0, 0, wintitle, 0, 0, "helloc4"); |
| + | |
| + | /* メッセージを表示 */ |
| + | lib_putstring_ASCII(0x0000, 0, 0, textbox, 0, 0, "hello, world"); |
| + | |
| + | /* 終了 */ |
| + | lib_waitsignal(0x0001, 0, 0); |
| + | } |
| + | |
| + | helloc4::~helloc4(){} |
| + | |
| + | void OsaskMain() |
| + | { |
| + | helloc4 hello; |
| + | } |
| | | |
| *こめんと(意見・質問・間違い指摘・その他何でも。) | | *こめんと(意見・質問・間違い指摘・その他何でも。) |
| -introeみたいにライブラリを使おうとすると、エラーが出る。 -- ''uchan'' SIZE(10){2004-10-03 (日) 15:30:27} | | -introeみたいにライブラリを使おうとすると、エラーが出る。 -- ''uchan'' SIZE(10){2004-10-03 (日) 15:30:27} |
| -やっぱVC++は不便な点が多いので、GOがバージョンアップしてC++の不具合が無くなるのを期待。 -- ''uchan'' SIZE(10){2004-10-03 (日) 17:01:06} | | -やっぱVC++は不便な点が多いので、GOがバージョンアップしてC++の不具合が無くなるのを期待。 -- ''uchan'' SIZE(10){2004-10-03 (日) 17:01:06} |
| + | -ライブラリ出来ました。VCにパスを通し、CL = cl.exe -I$(INCPATH) -c としました。 -- ''uchan'' SIZE(10){2004-10-04 (月) 07:16:28} |
| + | -ものぐさな人に必要な処置を施したosa_dir2改をあげておきます。http://bayside.upper.jp/upload/osasksdk-20041005.lzh -- ''bayside'' SIZE(10){2004-10-05 (火) 22:01:17} |
| + | -obj2bim3で"Warning : can't link ??2@YAPAXI@Z"が発生。どうもnewがリンクできていないらしい。 -- ''bayside'' SIZE(10){2004-10-06 (水) 15:17:52} |
| + | -つまりnew演算子用のランタイムがVCにあって、それが無いからリンクできないのでしょう。おそらくランタイムはOSに依存するので、VCのランタイムから持ってくるだけでは解決できないと思います。 -- [[K]] SIZE(10){2004-10-06 (水) 15:58:27} |
| + | -inline void* operator new(size_t n){ return malloc(n); } でたいていの環境でnewが使えるようになるはづ。 -- [[名無しさん]] SIZE(10){2004-10-06 (水) 17:28:47} |
| | | |
| #comment | | #comment |