在互聯網上有大量關於驅動程序加載失敗的查詢,但我的情況看起來很獨特。請幫忙。QSqlDatabase:驅動程序未加載,從另一個dll
我創建了一個我的代碼的DLL,它使用QSqlDatabase。所以依賴是像mylib.dll-> qt5sql.dll-> qsqlpsql.dll 當我使用mylib.dll運行測試應用程序時,它無法加載驅動程序。它列出了下來可用的驅動程序如下圖所示: QSqlDatabase:可用的驅動程序:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
然而,當我嘗試使用我的代碼作爲靜態庫,它工作絕對沒問題。所以對libpq.dll的依賴,PATH等的值都可以。有沒有其他人面臨這樣的問題?
您是否擁有與文本應用程序可執行文件相同的文件夾中的所有三個dll? – Dmitry
我在這方面嘗試了多種組合。 1.將exe和所有dll(包括qt5core和qt5sql)複製到同一個文件夾中。 2. exe和plugins/sqldrivers/driverdlls 3.exe和sqldrivers/driverdlls 4.默認安裝qt。我也使用QCoreApplication :: addLibraryPath(「./ plugins」);但它只能在我的代碼的dll外運行。它沒有任何效果。甚至嘗試setLibraryPath()的事情。 –
下面是另一個可以嘗試的方法:1.將驅動程序放入可執行文件附近的'sqldrivers'文件夾中2.通過'QCoreApplication :: addLibraryPath'將'sqldrivers'文件夾添加到庫路徑中。 3.嘗試在代碼中使用它之前手動加載驅動程序:'QPluginLoader加載器(「sqldrivers/qsqlpsql.dll」); loader.load();' – Dmitry