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

2xM*_*Max 1 .net c# managed-c++ mingw visual-c++

我有一个带源代码的MinGW DLL(~20k行),我需要在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代码,我不明白如何:)

Art*_*yom 5

几点:

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

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

  2. 关于代码 - 它改变了一些FPU选项,所以如果你想把它移植到C#/ .Net,你应该先了解它的作用.