我正在尝试将Qt与QOCI一起使用(实际上,与其他插件一起使用)但由于某种原因我不能。这就是我所做的和结果:
1- http://doc.qt.nokia.com/latest/sql-driver.html#qoci 插件已成功构建。
2-复制了插件调试&将dll和lib文件发布到插件/ sqldrivers和OCI.DLL到%WINDIR%\ system32 (插件/ 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在这种情况下会失败?有什么想法吗?
提前致谢。
答案 0 :(得分:0)
如何在Windows上构建插件
从Oracle客户端安装CD中选择Oracle Client Installer中的“Programmer”选项就足以构建插件。
按如下方式构建插件(此处假设Oracle客户端安装在C:\ oracle中):
set INCLUDE=%INCLUDE%;c:\oracle\oci\include
set LIB=%LIB%;c:\oracle\oci\lib\msvc
cd %QTDIR%\src\plugins\sqldrivers\oci
qmake -o Makefile oci.pro
nmake
如果您不使用Microsoft编译器,请在上面的行中将make替换为make。
运行应用程序时,还需要将oci.dll路径添加到PATH环境变量中:
set PATH=%PATH%;c:\oracle\bin
答案 1 :(得分:0)
您需要在包含exe的目录中创建文件夹调用sqldrivers。将您使用的所有SQL驱动程序DLL放在那里(对于oracle oci.dll,ociw32.dll,oraociei12.dll,oraons.dll,qsqloci4.dll,qsqlocid4.dll)。