2007-01-20-01-68K,ARMlet,Simulator でソースコード共有 - project-enigma

2007-01-20-01-68K,ARMlet,Simulator でソースコード共有

>> Site top >> weblog >> 月別アーカイブ >> 2007年01月のlog >> 2007-01-20-01-68K,ARMlet,Simulator でソースコード共有

最終更新日付:2013/12/31 07:39:05


68K,ARMlet,Simulator でソースコード共有

2007 年 01 月 20 日

...みたいなことをやっていた。ふぅ。

これまで作った ARMlet 搭載アプリでは、同じことをやるロジックでも 68K、ARMlet、Simulator用 DLL で異なるソースコードを用意していたんですね。ARMlet 部分のロジックが小さかったからそれでも問題なかったわけです。

しかし。今作っているアプリ、ARMlet 部分が相当な大きさになるのですよ。そうなると、ソースファイルが別だと管理上大変になります、と。現時点でそれが目に見えちゃっているものだから何とかしましょうと。そんなわけで頑張ってみました。

基本的には、昔「ARMletへの道」で書いた発想はそのまま使います。しかし、それぞれの環境用に作成した派生クラスでは実際のインプレ用クラスの処理を呼ぶだけになります。で、そのインプレ用クラスが 68K、ARMlet、Simulator用 DLLでソースコードを共有するわけですね。ARMlet のリソースを取得して実行したり、Windows DLL を呼び出したりするような環境固有の部分だけを個別化して、それ以外は極力共通化しましょうと。うん。

ちょっと問題になったのが、ARMlet や Simulator用 DLL から Palm OS API を呼び出すときにコールバックを使用しなければならないこと。全体的にソースコードを共有するには、68K コード側で足並みを揃える必要があります。ARMlet と DLL では、陰郎が以前PPL で書いた「【C/C++】 ARMlet での Palm OS API の呼出し方」で紹介した PalmOSAPI クラスを使用していますから、68K 側では inline で本物の Palm OS API を呼び出すような極薄のラッパーとしてこのクラスを個別化してやることで対処しました。結果として全体的な共通化を実現するためにプリプロセッサディレクティブをいくつか使用してしまいましたが、将来的にも混乱をきたすほどのものではないと判断 ( C++ プログラマにはプリプロセッサを駆使したマクロハッキングは苦痛なのです)。

...さぁこれで準備は整った...はず。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : Palm

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.