首页 文章

从vc6切换到mingw

提问于
浏览
0

两个(相当古老的)库是用C语言编写的,最初用MSVC 6编译 . 我想改变它并开始使用mingw .

编辑:库看起来使用__stdcall调用约定 .

首先构建库'a',然后生成a.lib和a.dll,包括MSVC 6的a.def . 然后构建库b并使用库:a.lib .

我成功用mingw构建了一个a.dll . 但我不知道如何构建a.lib文件?另一个要求是我需要完全使用MinGW工具或其他(免费)解决方案 .

另一个问题是,如果我们假设代码完全用C语言完成,mingw库会与msvc混合搭配吗?谢谢 .

1 回答

  • 0

    MinGW可以做的一件事就是MSVC不能直接链接到DLL - 换句话说,MinGW不需要导入库 . 只需将DLL作为输入传递给MinGW链接器,这应该与使用导入库一样好 .

    通常,无论使用哪个工具创建它们,C语言DLL导出都应该可以由MSVC或MinGW使用 . 但是,有些情况可能无法正常工作 . 在我的脑海中,ABI在返回结构方面存在一些差异,并且在处理某些浮点类型方面可能存在一些差异 . 我遇到过的大多数DLL API并没有做这些事情,但可能还有其他一些我没有想到或意识到的极端情况 .

相关问题