.NET Compcat Framework 2.0をPocket PC 2003に入れる方法を模索してみる。
レジストリとか、ファイルをエミュレーター側から、実機の方に
コピーしてみるも、うまくいかず。
そういえば、このFrameworkをインストールしてるときに、
進捗状況が表示されてるときに、Prgram Files内の、
Compact Frameworkのディレクトリの中に何かファイルが
System.Xml.dllとか(だったと思う)がコピーされてるんだけど、
エクスプローラー上から見ても、表示されない・・・。
なんなんだろうこれ。ひょっとして、一時ディレクトリに割り当ててるのかなぁ。
結局、Framework 2.0でやるのは断念。
が、昨日、一部の.NET Framework関連のコンポーネントを
削除してしまっていて、.NET Compact Frameworkのプロジェクトを
作成するとこんなエラーが出てしまう。
このプロジェクトには .NET Compact Framework v1.0 が必要ですが、
このコンピュータにインストールされていません。
で、調べた情報を元に、.NET Framework 1.0を
再インストールするも、状況変わらず。
結局、Visual Studio 2005の修復作業をしないといけませんでした。
この段階で、午前中の三分の二近くを無駄に消費・・・。
受験生だってのに何やってるんだろう。
どうにも気になるので、休みのときに作業。
.NET Compact Framework(以下、面倒なので、いまさらながらCFと略称)を
2.0から1.0に変更して、一番問題なのが、コントロールの
ハンドルが取得できないこと。
とりあえず、リモートスパイ使って、ハンドルが取れることは確認。
が、エディットコントロールのハンドルを取得したくて、
適当な文字列書き込んで、FindWindowしても、値が返ってこない・・・。
時間がないので、他の方法を試してみる。
親ウィンドウのフォームのハンドルだけは取れるので、
そこから小ウィンドウのハンドルを取得してって、
GetWindowTextでテキストの状況を調べて、
該当するもののハンドルを返却する関数を作成。
この作業だけで30分ほど。時間かかりすぎだ。
とりあえずは取れるようになった。
WindowsでUser32.dllに入ってるものは、
Pocket PCでは大概がCoreDll.dllに入っている模様。
おかしいと思ったら、デバッグコード入れたままだった orz
あれ、、、ウィンドウハンドルを取得することはできたけど、
肝心のダウンロード状況の反映が行われない・・・。
しかも、何か、上書きができない状況になってる・・・。
不思議だ。。。
リビルドしたら、うまくいくようになった。
Pocket PC用のC++コンパイラって、この手の現象多いなぁ。
簡易リビルドをオフにしとくべきか。
何か、ソフトのほうに集中してしまって、勉強がはかどらない。
これが完成して、Free Typingのほうも完成させたら、パソコンやる時間を
思い切って減らすべきだろうなぁ。
というのが、昨日の状況。
さて、今日はというと、まぁ、あまり時間がないので、
簡素に書いていくと、
できたソフトの検証をしてみるも、ファイルの先頭部分に
ごみが入っちゃって、プレーヤー側から読み込めない。
適当にいじってみて、文字のEncoding変えたら起こらなくなった。
やっぱり、こういう変なところかえると、結構治るもんだったりする。
まぁ、根本的な解決策にはなっていませんが。
正常に動作することを確認。
これで、何とか勉強に集中できるようになった。
休み時間にて、Windows環境でも動かせるように改良してみるも、
文字コードの変換が面倒なので、断念。
てか、よくよく考えてみると、DLLの方は(C++で作成)一行しか
書き換えてなくて、コンパイルが通ったんですが・・・。
(元は、Pocket PC用に開発していたもの)
しかも、書き換えたのが、stdio.hをインクルードしただけ。
別にこんなもの、Pocket PCデコンパイルするときでも、
あってもぜんぜん問題ない。
ということで、結構、Win32API系に関しては、ソースの
互換性(っていうのか)が保たれます。
次に、Free Typingのほうの作業。
ソースコードの方は、追加の実装を含めて修正完了。
明日からは、マニュアルと、デバッグ(何かこの言葉以前にも聞いた覚えが)
ほんと、そろそろ、パソコンの時間を減らさないとまずいので、
真剣に作業してかないといけない。
あと、今までの日記に書くなったメモを、
まとめて、「メモ」の方に書くようにしないといけない。
そこまでやって、やっとパソコンの時間を減らせるだろうか。