我试图为QtSql使用QOCI插件,直到我遇到一些问题: Why QOCI plugin isn't working
然而事实证明这是一个图书馆加载问题(至少我是这么认为的),所以我决定改变问题的主题,因为这是一个新问题。
我有一个dll文件(称为qsqloci4.dll)当我尝试使用LoadLibrary加载它时,它失败并且GetLastError返回ERROR_MOD_NOT_FOUND。当我尝试使用LoadLibraryEx加载它时,第三个参数是DONT_RESOLVE_DLL_REFERENCES,它成功加载(不返回NULL)。
所以,我认为这是一个依赖问题。我用依赖walker打开了dll文件,有2个文件无法找到:QtCore4.dll和QtSql4.dll。 但是,这些文件位于应用程序的工作目录中,并且成功加载了依赖于这些dll的其他dll文件(例如qsqlpsql4.dll)。
其他dll(由依赖者walker定位)是:
这是我的问题:给定依赖者walker说:“你有除qt之外的所有dll”并且我确信我有qt dll,还有什么其他原因可以使LoadLibrary失败并使用ERROR_MOD_NOT_FOUND?
答案 0 :(得分:5)
您需要在动态模式下运行Dependency Walker,因为它是一些将通过显式链接解析的依赖项。我相信您可以从“个人资料”菜单中执行此操作。