我正在尝试将 Qt 与 QOCI 一起使用(实际上,以及其他插件),但由于某种原因我不能。这是我所做的和结果:
1- http://doc.qt.nokia.com/latest/sql-driver.html#qoci 插件搭建成功。
2- 将插件调试和发布 dll 和 lib 文件复制到 plugins/sqldrivers 和 OCI.DLL 到 %WINDIR%\system32(plugins/sqldrivers 是其他插件如 QPSQL 和 QMYSQL 所在的位置)
3- QSqlDatabase::isDriverAvailable(QOCI) 返回 false,它为 QMYSQL 和 QPSQL 返回 true。我对 QMYSQL 和 QPSQL 做了同样的事情
4- QStringList qsl = QSqlDatabase::drivers(); 返回的字符串列表中没有 QOCI。但是有 QMYSQL、QPSQL 和其他一些。
附加检查:使用依赖 walker 打开 qsqloci4.dll,无法找到 3 个 dll:1-QtCore4.dll 2-QtSql4.dll 3-MSVSC80.dll 但是,使用依赖 walker 打开 qsqlpsql.dll 时也无法找到它们。我相信加载 dll 并没有因为 qsqloci4.dll 的依赖而失败。但是,仍然欢迎任何想法。
消息
LoadLibrary(_T("C:\\QtSDK\\Desktop\\Qt\\4.7.3\\msvc2005\\plugins\\sqldrivers\\qsqloci4.dll");
和
LoadLibrary(_T("C:\\QtSDK\\Desktop\\Qt\\4.7.3\\msvc2005\\plugins\\sqldrivers\\qsqlocid4.dll");
失败!!!请注意,这两个文件都存在于给定路径中。
我相信由于这个错误,Qt 也无法加载插件。现在的问题有点不同,但是为什么 LoadLibrary 在这种情况下会失败?有任何想法吗?
提前致谢。