2

我一直在尝试让 Flex 4.6 中的工作 (AIR 3) Native Extension 工作一段时间。我的基本项目是让 Flash (Flex) UI 与在后台运行的 C++/CLI DLL Native Extension 一起运行。该 C++ 本机扩展在后台进一步使用另一个 C# DLL。

基本上,这个链的原因是让 C# DLL 运行 Kinect 相机,它将数据传递给运行 OpenCV 的 C++ DLL,后者将数据传递给 Flash UI。

现在,我基本上已经完成了所有设置,Flash 可以通过与 C++ 的本机扩展进行通信,而 C++ 可以通过“#using”它的 DLL 与 C# 进行通信。

但是,当我尝试让 Flash 调用本机扩展 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# 类。

感谢您提供的任何帮助。

4

1 回答 1

0

你可以看看这个答案:https ://stackoverflow.com/a/15264535/88231

为了调试,我复制了 ADL.exe 所在的 DLL,它可以工作。

于 2013-11-25T15:14:38.133 回答