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

时间:2011-05-29 08:46:19

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

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

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

UPD:

MingGW和VC ++的区别:

  1. ASM调用代码,如
  2. 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代码,我不明白如何:)

1 个答案:

答案 0 :(得分:5)

几点:

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

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

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