S největší pravděpodobností se nedaří dynamicky propojit qsqlpsql.dll při vyvolání LoadLibrary poté, co váš program požaduje tento ovladač. LoadLibrary vrátí stejný chybový kód, když chybí cílová knihovna DLL, jako když jedna z knihoven DLL, na kterých cílová knihovna závisí, chybí nebo ji nelze načíst . Qt tedy dost možná dostane chybu „knihovna nenalezena“ a předpokládá „oh, ovladač Pg nesmí být v tomto sestavení Qt“, kde ve skutečnosti je přítomen a nenačte se kvůli problémům se závislostmi, problémy s kompatibilitou knihoven atd.
Chcete-li zjistit, proč se nedaří načíst, můžete, jak navrhl Frank Osterfeld, použít nástroj jako Dependency Walker (depends.exe )
. Pokud kompilujete 32bitový kód na 64bitovém počítači, chcete získat 32bitový chodec závislostí.
Je docela pravděpodobné, že selže, protože existuje závislost qsqlpsql.dll chybí - buď libpq.dll , nebo jednu z knihoven, které libpq stavba vyžaduje. Závislost walker to pomůže izolovat. Je také možné, že se pokoušíte načíst 64bitový libpq.dll v 32bitovém programu nebo naopak.
Také pro vás může být informativní, když spustíte svůj program pomocí nástroje Process Monitor, který jej sleduje. To mimo jiné vytvoří mnoho podrobností o tom, které soubory se pokouší otevřít/prozkoumat, a může pomoci vystopovat věci, jako je neočekávaná PATH problémy.
Pokud jste stále uvízli, vždy je zde možnost projít pomocí debuggeru.