【发布时间】:2011-05-29 08:46:18
【问题描述】:
我有一个带有源代码(约 20k 行)的 MinGW DLL,我需要在 CLR 中使用这个 DLL 中的一些类。起初我尝试为 C++ 类(我刚刚从源代码复制)编写 Manged C++ 包装类,并从 C# 中引用这个类。但是 VC++ 编译器和 MinGW 存在差异,因此本地代码编译时会出现一些错误!我在 C++ 和 ASM 方面没有什么丰富的经验,这会产生一些麻烦。
告诉我,有没有办法在 VC++ 或 C# 中导入 MinGW 类?
更新:
MingGW 和 VC++ 的区别:
- 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 更难的汇编代码:)
- 它也执行 fortran 代码,我不明白如何:)
【问题讨论】:
-
你能发布一些不同的例子吗?如果没有提供错误,很难检查它们。
-
你会发现如果MinGW dll严重依赖GnuC类型,你需要将GNU头文件导入VC++才能使用该dll。您可能会发现编写一个使用 VC++ 友好界面的包装 dll 并在您的托管项目中使用它会很有帮助。
标签: c# .net visual-c++ mingw managed-c++