如何将 Win32 库转换或使用到另一个平台?

问题描述 投票:0回答:2

描述-:

我正在尝试实施封送处理,尝试在 Visual Studio 的 C# 代码中使用 C++ 库。

我有一个 C++ 项目,在 Win32 解决方案平台中构建时运行良好,但在 x64 解决方案平台中构建时抛出错误-:

我有在 x64、x86 或 AnyCPU 平台上运行的 C# 程序。

如果我尝试在 Win32 平台上构建 C++ 项目并将创建的 dll 用于我的 c# 应用程序的 x64、x86 或 AnyCPU 平台。它显示错误-:

要求-:

如何将我的 C++ 项目生成的 .dll 文件用于我的 C# 应用程序。

c# c++ visual-studio dll marshalling
2个回答
0
投票

这里有两种解决方案。第一种是愚蠢的方法,可能无法满足您的需求。第二种方法你需要了解如何使用COM组件。

解决方法一:可以全部编译成win32就可以运行成功了

解决方案二:你可以再写一个32bit的dcom组件(dll)来调用你的32bit的dll,把这个dcom组件设置为out process com,让你的64bit程序调用它。这个方法很靠谱

如果它不起作用,请告诉我。


0
投票
  1. 第一个错误是因为不同的Runtime Library in 项目->属性->C/C++->代码生成->运行时库。当所有项目都有共同点时,问题就解决了 运行时库。

  2. 第二个错误是因为混合了不同类型的 配置和平台。我有 64 位格式的 C# 代码,并且 32 位的 C++ 代码,这造成了歧义。

© www.soinside.com 2019 - 2024. All rights reserved.