c++ - 将 C++ 库导入 C# (Windows Phone)

标签 c++ windows-phone

我有一个用 C++ 编写的头文件,内容如下:

namespace n1
{
    namespace n2
    {
        ...
    }
}

现在,我有一个c#文件,我想使用这个头文件... 我正在尝试这样做:

using n1.n2;

但是没用...

这个:

using n1

被识别,但第二个命名空间没有..

有没有人有解决办法?

最佳答案

您不能只从 C# 项目中引用 C++ header 。您不能在 C# 中使用 C++ 库。

您需要手动将您的库包装到可以从 C# 托管代码调用的 C++/CX 包装器中。编译那个包装器。然后引用已编译的 DLL + WinMD 文件(或构建该 DLL 的完整 C++/CX 项目,以便 visual studio 将引用该 DLL)。

只有这样,您才能在 C# 中使用您的库。

2016 年更新:Microsoft 很久以前就在 Windows Phone 8.1 中修复了 [DllImport]。 使用 [DllImport] 并将库包装到具有 C 风格 API 的普通 C++ DLL 中而不涉及任何 C++/CX 通常是个好主意。

在托管项目中,不要忘记重新分发 native DLL,并添加对正确版本的 Visual C++ 运行时库的依赖。

关于c++ - 将 C++ 库导入 C# (Windows Phone),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23739919/

相关文章:

wpf - 如何在 XAML 中绘制单独的圆圈?

c++ - 按位非的奇怪输出

c++ - 如何在 C++ 中动态创建具有列表底层数据结构的队列?

c++ - 为什么当赋值运算符的左操作数时,数组名称不会衰减为指针?

windows-phone-8 - Windows Phone 应用程序更新 xap 文件

css - Windows Phone - 将 CSS 添加到显示第三方网页的 WebBrowser

javascript - 我的 WP 应用程序具有不受我控制的外部依赖项,我该如何解决问题而不重新提交到市场?

c++ - 在我的C++ Builder应用程序中包括xmmintrin.h的问题

c++ - QMediaPlayer 给我有关视频的错误信息

c# - 枢轴应用程序 (WP7) 中的动画控制