将 C++ 管理的 dll 导入 C#.NET 项目时出现问题
Problems while Importing a C++ managed dll to C#.NET Project
这似乎是标题中的重复问题,但让我澄清一下,我已经搜索并遵循了不同的方法。
基本上我必须将 managed C++ dll
导入到 C#
项目中。查阅了一些教程,终于创建了一个managed C++ dll
。现在在导入 dll
时出现以下错误:
An attempt was made to load a program with an incorrect format
我也找到了一些解决方案,例如 this but these solutions could not help me. Before facing this error I had to consult this solution and then this。
这是我如何尝试导入 dll
:
的屏幕截图
设置:
代码:
有人请指导我在我的项目中导入 dll
的正确方法。
此 C++ 库适用于特定体系结构(x64 或 x86)。另一方面,C# 不是(任何 CPU),这就是为什么会出现这种错误 - C# 很可能假设您有一个 x64 非托管库。您应该将 C# 项目中的体系结构限制为其中之一(x64 或 x86),以便在两个项目中它们是相同的。
您不应该将文件复制作为构建前的步骤吗?在构建之前确保它位于正确的位置。我也会删除 exit 0
,它不需要。
DllImport
通常用于本机 C 风格 API,而不是托管程序集和 C++/CLI 程序集。这些 .Net 程序集,无论是否混合模式,都可以添加到通常的程序集依赖位置。
如果这是 "Managed C++" 而不是 "C++/CLI" 程序集,它也可能与目标 .Net 框架不兼容。
这似乎是标题中的重复问题,但让我澄清一下,我已经搜索并遵循了不同的方法。
基本上我必须将 managed C++ dll
导入到 C#
项目中。查阅了一些教程,终于创建了一个managed C++ dll
。现在在导入 dll
时出现以下错误:
An attempt was made to load a program with an incorrect format
我也找到了一些解决方案,例如 this but these solutions could not help me. Before facing this error I had to consult this solution and then this。
这是我如何尝试导入 dll
:
设置:
代码:
有人请指导我在我的项目中导入 dll
的正确方法。
此 C++ 库适用于特定体系结构(x64 或 x86)。另一方面,C# 不是(任何 CPU),这就是为什么会出现这种错误 - C# 很可能假设您有一个 x64 非托管库。您应该将 C# 项目中的体系结构限制为其中之一(x64 或 x86),以便在两个项目中它们是相同的。
您不应该将文件复制作为构建前的步骤吗?在构建之前确保它位于正确的位置。我也会删除 exit 0
,它不需要。
DllImport
通常用于本机 C 风格 API,而不是托管程序集和 C++/CLI 程序集。这些 .Net 程序集,无论是否混合模式,都可以添加到通常的程序集依赖位置。
如果这是 "Managed C++" 而不是 "C++/CLI" 程序集,它也可能与目标 .Net 框架不兼容。