我试图用QOCI插件QtSql,直到我遇到了一些问题: Why QOCI plugin isn't working调用LoadLibrary失败和依赖学步车没有帮助
然而事实证明,这是一个库加载问题(至少我是这么认为的),所以我决定改变这个问题的主题,因为这是一个新问题。
我有一个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(其由依赖步行者位于)为:
- OCI.DLL:是在同一文件夹中QtCore4.dll和QtSql4.dll,意味着我的应用程序可以访问它
- KERNEL32。 DLL:我相信最简单的DLL找到我的应用程序
- msvscr80.dll:使用它的其他DLL文件可以成功加载。
这里是我的问题:给定的Dependency Walker说:“你除了那些QT的所有DLL”,我相信,我有qt的dll文件,可以是其他什么原因LoadLibrary来失败,ERROR_MOD_NOT_FOUND?
真的解决了这个问题:)非常感谢你 – 2011-06-06 09:38:07