c# - 在 C# 或 VC++ 中导入 MinGW C++ DLL

标签 c# .net visual-c++ mingw managed-c++

我有一个带有源代码(约 20k 行)的 MinGW DLL,我需要在 CLR 中使用该 DLL 中的一些类。首先,我尝试为 C++ 类(我刚刚从源代码复制)编写 Manged C++ 包装类,并从 C# 引用此类。但VC++编译器和MinGW存在差异,因此 native 代码编译时会出现一些错误!我在 C++ 和 ASM 方面没有丰富的经验,这会产生一些麻烦。

告诉我,有没有办法在 VC++ 或 C# 中导入 MinGW 类?

更新:

MingGW 和 VC++ 的区别:

  1. ASM 调用代码如

asm("fnstcw %0\n" : "=m" (cw) : : "memory");<br/> asm("fldl (%0)\n": : "r"(x): "st(7)"); };<br/> asm("fstps (%0)\n": : "r"(x): "memory", "st");

不能在 VC++ 中编译。我从来没有写过比 MOV AX, BX 更难的汇编代码:)

  1. 它还执行 Fortran 代码,但我不明白如何执行:)

最佳答案

几点:

  1. 您不能使用 C++ DLL,但可以像使用任何其他 native DLL 一样使用 C DLL。

    参见:http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

  2. 关于代码 - 它更改了一些 FPU 选项,因此如果您想将其移植到 C#/.Net 你应该首先了解它的作用。

关于c# - 在 C# 或 VC++ 中导入 MinGW C++ DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6166777/

相关文章:

c# - .net 消息循环

c# - 在文件夹中保存具有唯一名称的上传文件

c# - 点网异常 : Null reference and argument null exception

c# - Stream 写入的内容可能小于缓冲区大小吗?

visual-studio-2010 - 将类从 MFC 移植到 C++ 控制台应用程序。使用/MD[d](CRT dll版本)构建MFC应用程序需要

C# 反射和获取属性

c# - 缩小图像尺寸 imagemagick

c# - 具有重复行标题和换行的 RDLC

windows - CoInitializeSecurity 错误

c# - 在 Windows 2012 上更改事件进程的处理器组