一个Debug版的dll链接时,VS会首先链接QT的Debug库,比如QtCoreD.dll,而QtCoreD.dll内部又一定链接了VC的Debug库,比如msvcrD.dll,自己写的dll也会链接VC的Debug库,比如msvcrD.dll.相同的,Release版的都会去链接VC的Release库;在Debug下要把下图中Runtime Library设置成如图所示MDd,在Release下要设成MD。参数MDd就保证了Debug下加载VS的debug版本的库;参数MD就决定了在Release下加载VC Release版本的库。
link 你link了QT的Debug 库比如QtCoreD.dll. 而QtCoreD.dll内部link的一定是VC的Debug库,比如msvcrD.dll. 而你的算法库同时又link了VC的Release库,比如msvcr.dll. 所以实际上你的算法模块就混用debug和release库了。所以就加载不起来。