在mingw中使用msvc lib

ard*_*var 5 dll mingw visual-c++

我有一个硬件(X射线传感器),它有开发工具.但是afaiu这些都是用msvc构建的.所以我有一个.lib文件和.dll文件.如果我将这个lib文件包含到我的项目中(我正在使用qt),并将dll文件放到exe文件夹中并使用MSVC-Release选项进行编译everytihng有效.但是当我尝试使用mingw-Release选项进行编译时.它失败.

未命名的引用` imp __ZN6IDcDrv6CreateEPKci'

未命名的引用` imp __ZN6IDcDrv14GetDeviceCountEv'

你可以指出一些方法,以便我可以使用这些库.和mllw编译器的dll文件

ps:我试过并失败了impdef dclibsn.dll> dclib.def

dlltool -dllname dclibsn.dll --def dclib.def --output-lib libdclibsn.a

这就是我的def文件的样子

LIBRARY "dclibsn.dll"
EXPORTS
??0DcDrv@@QAE@ABV0@@Z
??0DcDrv@@QAE@V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z
??0IDcDrv@@QAE@ABV0@@Z
??0IDcDrv@@QAE@XZ
??1DcDrv@@QAE@XZ
??4DcDrv@@QAEAAV0@ABV0@@Z
??4IDcDrv@@QAEAAV0@ABV0@@Z
?CaptureImage@DcDrv@@AAE_NHHHK_NHH@Z
?CloseUsbDevice@DcDrv@@AAE_NXZ
?ColumnDefectComp@DcDrv@@AAEGPBGH@Z
?CompensationImage@DcDrv@@AAEXPAGQAEHH@Z
?Create@IDcDrv@@SAPAVDcDrv@@PBDH@Z
Run Code Online (Sandbox Code Playgroud)

注意这个文件中的最后一个条目(创建.)我试图在程序中调用它,我得到

(.text+0x1ad): undefined reference to `_imp___ZN6IDcDrv6CreateEPKci'
Run Code Online (Sandbox Code Playgroud)

如果我更换线?创建@ IDcDrv @@ SAPAVDcDrv @@ PBDH @ Z

imp __ZN6IDcDrv6CreateEPKci它编译,但给出错误.

The procedure entry point _ZN6IDcDrv6CreateEPKci could not be located in the dynamic link library dclibsn.DLL. 
Run Code Online (Sandbox Code Playgroud)

Nei*_*day 0

我当然不是这个问题的专家,但我一直认为用 mingw 构建的项目无法使用 msvc 项目中的任何 dll 或库,因为它们是用不同的编译器构建的。