2012-03-21 5 views
2

現在のiOSプロジェクトの1つとして、ダイナミックライブラリ(dylib)で再コンパイルしなければならないDLLとネイティブC++バインディングコードを使用して、この動的ライブラリを使用してDLLを使用します。 最後に、DLLは、この例のように使用される:iOSアプリケーションで既存のDLLをモノフレームワークで使用する

int main(int argc, char** argv){ 
    RTEnvironnement::CreateRTEnvironnement("../dll/RT.dll"); 
    RT::RT_Facade * mFacade = new RT::RT_Facade(); 
    RT::RT_Data_Projet * mProjet = new RT::RT_Data_Projet(); 
    mProjet->Load_From_XMLFile(argv[1]); 
... 

はRTEnvironnement、RT_Facade、RT_Data_Projetが結合C++動的LIBによって提供されるオブジェクト。私は基本DLLのコードを取得することはできませんし、私はIOS上であるようにDLLを使用する必要があります。

私は現在、mono touchが標準のモノフレームワークでビルドされたDLLを起動するために、自分のIOSアプリケーション(Xcodeに基づく基本的なiOS Objective C)を実行できるかどうか調べています。ライセンスを購入する前に、MonoTouchがこれを実行できることを確認する必要があります。

誰かが似たようなことをしていますか?これには最も簡単な方法はありますか? MonoTouchの使用を選択した場合、プロジェクトをXcodeに保存して、MonoDevelopでdylibを構築してから、Xcodeプロジェクトのlibをインポートできますか?

ありがとうございました。

+0

Monotouchの試用版を試してみてください。あなたはiPhoneシミュレータだけを使用するように制限されています - それ以外は完全にライセンスされたバージョンのようです。 – basti

+0

AFAIKでは、Obj-CアプリケーションでMonoライブラリを使用することはできません。 – Jason

答えて

2

標準モノフレームワークでビルドされたDLLです。

MonoTouch(Android用のMonoなど)は、Silverlightと似ている(スーパーセット)基本クラスライブラリ(BCL)プロファイルを提供します。しかし、それはMonoフレームワーク全体のサブセットです。

はそのようなものとして、それは完全なフレームワークに対してコンパイルアセンブリは、彼らが(MonoTouchでBCLに対して)再コンパイルされていない限り、 MonoTouchでに動作しないこと非常に一般的です。

私がMonoTouchを使用することを選択した場合、プロジェクトをXcodeに保存して、MonoDevelopでdylibを作成してから、Xcodeプロジェクトのlibをインポートできますか?

これはもっと複雑です(たとえば、MonoDevelopはあなたに.dylibを与えません)。あなたはかもしれませんが、これを行うためのいくつかの指示をGoogleにできるが、このシナリオはサポートされていないであることに注意してください。

サポートされている代替方法は、MonoTouchでアプリケーションを駆動させ、必要なアセンブリをロードし、それらを公開し、Objective-Cコードに制御を移します。

+0

お返事ありがとうございます。 – blobichon

関連する問題