Provavelmente está falhando ao vincular dinamicamente o
qsqlpsql.dll
arquivo quando invoca LoadLibrary
nele depois que seu programa solicitar esse driver. LoadLibrary
retorna o mesmo código de erro para quando a DLL de destino está ausente e quando uma das DLLs da qual a DLL de destino depende está ausente ou não pode ser carregada . Portanto, o Qt possivelmente recebe um erro de "biblioteca não encontrada" e assume "oh, o driver Pg não deve estar nesta compilação do Qt", onde na verdade está presente e falhando ao carregar devido a problemas de dependência, problemas de compatibilidade de biblioteca, etc. Para determinar por que está falhando ao carregar, você pode, como Frank Osterfeld sugeriu, usar uma ferramenta como Dependency Walker (
depends.exe
)
. Se você estiver compilando código de 32 bits em uma máquina de 64 bits, você deseja obter o walker de dependência de 32 bits. É bem provável que esteja falhando porque há uma dependência de
qsqlpsql.dll
ausente - ou libpq.dll
, ou uma das bibliotecas que libpq
construir requer. O andador de dependência ajudará a isolar isso. Também é possível que você esteja tentando carregar um libpq.dll
de 64 bits em um programa de 32 bits, ou vice-versa. Você também pode achar informativo executar seu programa com o Process Monitor rastreando-o. Isso produzirá muitos detalhes sobre quais arquivos ele tenta abrir/examinar, entre outras coisas, e pode ajudar a rastrear coisas como
PATH
inesperado questões. Se você ainda estiver travado, sempre há a opção de usar um depurador.