【问题标题】:Importing a C++ dll in C#在 C# 中导入 C++ dll
【发布时间】:2009-02-19 00:36:18
【问题描述】:

我创建了一个 C++ dll(比如说 MyC++Dll.dll)并且我有一个头文件(MyC++Dll.h)。 MyC++Dll.h 包含类型定义。

我想在我正在创建的 C# 应用程序中导入这个 dll。

我可以使用

导入 dll

[DllImport("MyC++Dll.dll")] 静态外部函数();

但我无法在包含类型定义的 C# 应用程序中导入/包含头文件 (MyC++Dll.h)。

请提出一种成功构建此 C# 应用程序的方法。

【问题讨论】:

  • 您必须对需要从 DLL 使用的每个函数使用 DllImport。如果您从头文件中发布这些 C++ 定义,我们可能会帮助您处理 DllImport 语句

标签: c#


【解决方案1】:

您必须手动将任何非标准参数类型(即自定义结构等)转换为 C#。查看http://pinvoke.net 以获取有关如何使用 Win32 结构执行此操作的示例。您应该能够弄清楚如何为自己的结构执行此操作。

【讨论】:

    【解决方案2】:

    我知道的唯一方法是在 C# 中手动创建所有类型定义,确保它们与您的 dll 兼容。

    【讨论】:

      【解决方案3】:

      您还需要学习如何将类型从 C++ 编组到 C#。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-06
        • 2016-05-23
        • 1970-01-01
        • 1970-01-01
        • 2021-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多