在Visual Studio 2010 C ++项目中使用MinGW内置的dll

时间:2010-10-13 14:01:19

标签: c++ visual-studio-2010 dll dllimport mingw32

我已经构建了一个dll,现在我想在Microsoft Visual Studio项目中使用这个dll。

g++ -O0 -Wall -c -fmessage-length=0 -osrc\MyLib.o ..\src\MyLib.cpp
g++ -shared -Wl,--out-implib=MyLib.lib -Wl,--output-def=MyLib.def -oMyLib.dll src\MyLib.o -lwsock32

当我在“gcc项目”中使用它时,dll工作正常。

我尝试了不同的方法来创建“.lib”和“.def”文件,并尝试通过以下不同的教程导入VS中的这些库。但VS没有找到dll中声明的方法......

我很感谢你的帮助。

3 个答案:

答案 0 :(得分:3)

你听说过名字错误吗?除非从DLL导出的函数标记为extern“C”,否则它们的名称将以特定于编译器的方式被破坏。因此问题。

答案 1 :(得分:1)

如果您希望将dll与其他编译器一起使用,则可以使用以下选项:

  1. 仅显示“C”界面(带有 extern“C”) - 没有课程或任何 特定于C ++。
  2. 制作一个COM dll。
  3. 使您的COM模型如下所示 相同的约束。

答案 2 :(得分:0)

为了他人的利益。看一下 MinGW: Mixing CompilersBinary Compatible C++ Interfaces。 从上面可以清楚地看出,没有办法直接使用MS Visual Studio与MinGW构建的C ++ DLL接口。这种接口只能通过基于C的界面干净地“工作”。