【发布时间】:2014-12-30 22:21:07
【问题描述】:
我想在我的 C# windows phone 8.1 XAML Visual Studio 项目中使用 C++ dll(为 arm、x86 编译)。
我创建了一个 C++ 运行时组件来与我的 C++ 代码交互。此代码需要一个预编译的 dll。我将我的 lib 文件添加到我的项目设置中。编译运行良好。 如果我使用 windows phone 8.1 模拟器启动我的应用程序,我会得到:
The specified module could not be found. (Exception from HRESULT: 0x8007007E)
我的 Visual Studio 项目结构:
- c#
- Windows Phone 项目
- Windows 项目
- 共享 XAML
- 托管 C++
- RuntimeComponent Windows Phone
- 运行时组件窗口
- 共享 C++ 代码(此处使用的 dll)
我尝试过的事情:
- 我将 dll 拖放到我的 C++ 项目中,并将内容的属性更改为 true。
- 我将 dll 拖放到我的 C# 项目中,并启用了将 dll 复制到输出目录的选项
那么,如何在 C++ 运行时组件项目中使用 .lib/.dll 库?
更多细节:
- 我想使用 Angle(它允许使用 Microsoft fork 在 Windows/Windows Phone 上将 OpenGL 代码作为 DirectX 执行:https://github.com/MSOpenTech/angle/tree/future-dev)
- 为 Windows Phone 8.1 提供了基于 libEGL.lib/dll 和 libGLES.lib/dll(为 arm、win32 手动编译)的纯 C++ 模板
- 但我想使用带有 C++ 运行时组件的 C# 项目,以便能够使用第三方库,例如 Windows Phone 的 admob 广告框架
- 我发现 cocos2d 正在使用 Angle 但我不知道他们是如何做到的 (https://github.com/cocos2d/cocos2d-x/tree/v3/templates/cpp-template-default/proj.wp8-xaml)
【问题讨论】:
-
this 你想做什么?
-
不,我不想在 C# 代码中直接调用 C++ 代码。 C# 代码调用运行时组件方法(托管 c++),在此托管 c++ 代码中,我想使用 C++ dll。
-
要与库链接,您可能必须将 .lib 文件添加到链接器/输入/附加依赖项下的项目配置中。
-
我已经在那里添加了lib文件
-
您是否也右键单击 dll > 包含在项目中?
标签: c# c++ xaml dll windows-phone-8.1