Flex 4.6で動作する(AIR 3)ネイティブ拡張機能をしばらくの間動作させようとしています。私の基本的なプロジェクトは、C ++ / CLI DLL Native Extensionをバックグラウンドで実行してFlash(Flex)UIを実行することです。そのC++ネイティブ拡張機能は、バックグラウンドでさらに別のC#DLLを使用します。
基本的に、このチェーンの理由は、Kinectカメラを実行するC#DLLを使用することでした。これにより、OpenCVを実行するC ++ DLLにデータが渡され、FlashUIにデータが渡されます。
これで、基本的にすべてがセットアップされました。FlashはC ++のネイティブ拡張機能を介して通信でき、C ++はDLLの「#using」を介してC#と通信できます。
ただし、FlashでNative Extension C ++を呼び出してC#を呼び出そうとすると、Flexデスクトップアプリがクラッシュし、次のエラーが発生します。
Process terminated unexpectedly
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'kinect, Version=1.0.0.0, Culture=nutral, PublicKeyToken=null' or one of its dependencies.
The System cannot find the file specified.
at startCamera(Void* ctx, Void* funcData, Uint32 argc, Void** argv)
Launch command details: "C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0\bin\adl.exe" -runtime "C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0\runtimes\air\win" -profile extendedDesktop -extdir "C:\Users\owner\Adobe Flash Builder 4.6\.metadata\.plugins\com.adobe.flexbuilder.project.ui\ANEFiles\WorkingExtension\win32\" C:\Users\owner\Deskto\FinalWorkingExtension\Flex\bin-debug\WorkingExtension-app.xml C:\Users\owner\Desktop\FinalWOrkingExtension\Flex\bin-debug
私が理解しているように、kinect.dll(C#DLL)が見つかりません。これをネイティブ拡張機能のANEファイルに入れて、システムPATHに含め、C++プロジェクトのプロジェクトプロパティリンカーを使用してリンクしてみました。私はこの時点でちょっとアイデアがありません。
ああ、私はエラーをC++ステートメントまでたどりました:
kinectClass^ deligate = gcnew kinectClass();
ここで、kinectClassは、C#DLLで作成したC#クラスです。
あなたが提供できるどんな助けにも感謝します。