WindowsCE上で動作するBasic(プログラミング言語)のエミュレータを作っています。
手始めにXP上で動作するものを下のサイトを見ながら作ってみて、それをceに移植しようともがいています。
自分の知識ではぐぐるキーワードさえもう、思いつかず、どうにも手に負えなくなってしまいました。
せめてCE用のデバッガがあればもう少しがんばれそうなのですが、CE用のデバッガも探しても見つからず・・・
参考にしたサイト
URL:http://masudahp.web.fc2.com/cl/mbasic/index.html
使用OS
WindowsXP
WindowsCE6.0core(SHARP Brain PW-GC590に搭載)
開発環境
XP用→VC++2008
CE用→eVC++4.0
使用方法
XP用:メニューからファイルを選択して開いたのちメニューからDOを押すと実行する
INPUT使用時は下のテキストボックスにフォーカスが移り入力をしたのちOKボタンを押すと
入力される
CE用:基本的にXP用と同じ
ただし、ファイル読み書きをまだ実装できていないため、常に同じフォルダにあるde.txtを
実行する。
現状までに成功したこと。
XP用のプログラムは正常に動作しているようです。
CE用のプログラムでどこかおかしいことになっているみたいです。
問題点
・CE用のプログラムで実行すると、同じフォルダに入れてある実行ファイルde.txtを
実行しても、INPUTで入力するときにA=0かつB=0または、A,Bともに入力なしでOKを幼いと
無限ループに入るようで、MessageBox(GhWnd,_T("Error'sbmain'\r\n"),_T("Error"),MB_OK);
がずっと実行されているようです。
注釈(CE用とXP用で所々違う理由を自分なりにまとめたもの)
・XPはUNICODEではなくてもいいが、CEはUNICODE?限定で_T(tchar.h)または_TEXT(windows.h)を
文字列または文字の前につけなければならない。(型をキャストしている?)
・CEでは常にWM_PAINTがだされているみたいで、WM_PAINTに描写関係を入れるとちらつく(WM_PAITN内にMessageBox()を入れるとループに)
・ごく初期的なライフゲーム作成し同一のCE上で実行したときは正常にどうさしました。(一応添付しておきます。)
最後に
おかしなコメントが入っていたり、一度も呼ばれていない変数や関数があったりします。
ソース全体を整形してから質問しようかとも、思ったのですが、これ以上いじると
さらに問題が増えていき、また、解答者様が流れを追いづらくなるかと思い、一切合財を残してあります。
なお、file.cppならびにfile.hはまだ一切CE用にしていないため、使用していないので、file.cpp関係の指摘は結構です。
質問点
・どこが悪いのか?
・なにが原因と考えられるか?
・問題点がもし検討もつかない場合はこれからどうしたらよいか?
/*一度プロジェクトを新しく作りなおして、コードをきれいにしつつ書きなおしてみる等など・・・*/
現状までコードを書いたのち約2か月ほどデバッグを続けてきたのですが、一切進歩せずについにソースを○投げしてしまいました。
CE用のプログラムだとデバッガ?で各変数の値を追うことができずに、デバッグの方法も手探りでやってみたのですが、
遂に、方策がつきました。どうか、問題点や怪しい点を教えてください、お願いします。
プロジェクトごと一式添付したのでよろしくお願いします。
Basicのエミュレータ作成:完全に行き詰りましたTT
Basicのエミュレータ作成:完全に行き詰りましたTT
- 添付ファイル
-
- Csitumon.zip
- Basicエミュソースコード
- (11.89 MiB) ダウンロード数: 110 回