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

本文关键字:导入 MinGW C++DLL VC++ | 更新日期: 2023-09-27 17:58:05

我有一个带有源代码(约20k行)的MinGW DLL,我需要在CLR中使用该DLL中的一些类。起初,我试图为C++类(我刚刚从源代码中复制)编写Manged C++包装类,并从C#中引用这个类。但是VC++编译器和MinGW存在差异,因此本机代码编译时会出现一些错误!我在C++和ASM方面没有太大的经验,它会产生一些问题。

告诉我,伙计们,有没有一种方法可以在VC++或C#中导入MinGW类?

UPD:

MingGW与VC++的区别:

  1. ASM调用代码,如

asm("fnstcw %0'n" : "=m" (cw) : : "memory");
asm("fldl (%0)'n": : "r"(x): "st(7)"); };
asm("fstps (%0)'n": : "r"(x): "memory", "st");

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

  1. 它还执行fortran代码,我不明白它是如何执行的:)

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

几点:

  1. 您不能使用C++DLL,但您可以将C DLL用作任何其他本机DLL。

    请参阅:http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

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