【发布时间】:2014-11-20 15:53:17
【问题描述】:
我有一个为 iOS 和 Android 开发的 C++(本机代码)DLL 项目。我想将它移植到 C++ DLL(通用应用程序)以供 C# 通用商店应用程序使用。代码不依赖于硬件。
作为第一步,在移动所有代码之前,我创建了一个小型测试解决方案,如下所示:
- 我创建了一个 C++ DLL(通用应用程序)myDll,它有一个 C++
Add1(int, int)函数。 - 我创建了一个具有 C++
Add2(int, int)函数的 C++ WinRT 组件(通用应用程序)。 - 我创建了一个 C# 通用应用程序 myApp,它调用
Add2,它又调用Add1。
编译通过了,但是当我运行 myApp 时,应用程序崩溃并报告 myDll 不是 已加载。
我的问题是:
- 我上面描述的场景可能吗?如果是这样,导致 myApp 崩溃的问题可能是什么?
- 我是否有更好的方法来移植 iOS/Android C++ 代码以在 C# 通用应用程序中使用?
谢谢
【问题讨论】:
-
所有 DLL 都必须包含在最终包中。您缺少第一个 DLL。目前还不是很清楚你是如何做到的,但是构建系统不会有很多好的线索来知道这种依赖关系的存在。需要添加对 DLL 的引用。
-
如何添加对 DLL 的引用? WinRT 组件(上面的第 2 步)无法将 DLL 添加为引用。 C# 应用程序将不接受在上述步骤 1 中创建的 DLL。
标签: c# visual-c++ dll windows-runtime windows-8.1