在 C#(WPF) 中使用 C++ dll

Posted

技术标签:

【中文标题】在 C#(WPF) 中使用 C++ dll【英文标题】:Use C++ dll in C#(WPF) 【发布时间】:2014-12-04 06:28:29 【问题描述】:

我有一个用 MFC 编写的 C++ 项目,其中一些项目是 DLL 类型的。我想在我的 C# 代码中使用这些 dll(使用 DllImport)。

我尝试添加作为参考,但无法添加并出现错误。我需要在任何特定位置复制这些 dll 吗?我的代码将如何链接这些 dll?

【问题讨论】:

C++ 没有标准化的 ABI,这意味着 C++ dll 在不同的 C++ 编译器之间甚至不兼容。是什么让你认为它有机会在 C# 下工作?您要么必须将其扁平化为 C API,要么围绕 C++ 代码编写包装器或填充程序。 【参考方案1】:

您不能添加对本机 DLL 的引用。在DllImport 中,您只需在运行时导入 DLL,因此如果 DLL 与托管应用程序不在同一目录中,请注意其路径。

C++-DLL 的一个问题是,DLL 中的函数名可以被修饰,因此您必须在使用之前找出修饰过的名称。

【讨论】:

以上是关于在 C#(WPF) 中使用 C++ dll的主要内容,如果未能解决你的问题,请参考以下文章

C++ DLL 和 C# 应用程序 WPF:System.DllNotFoundException

从 CLI C++ 应用程序在库中加载 C# WPF 表单

尝试从 C# 调用 C++ dll 时出现格式不正确的异常

C#的WPF工程中如何使用DLL

c#/wpf OpenMP 在外部 dll 中

在 C# 中使用带有字符串的 C++ 类 (Dll)