Hoogstwaarschijnlijk slaagt het er niet in om de qsqlpsql.dll
. dynamisch te linken bestand wanneer het LoadLibrary
. aanroept erop nadat uw programma dat stuurprogramma heeft aangevraagd. LoadLibrary
geeft dezelfde foutcode terug voor wanneer de doel-DLL ontbreekt als voor wanneer een van de DLL's waarvan de doel-DLL afhankelijk is, ontbreekt of niet kan worden geladen . Dus Qt krijgt mogelijk de foutmelding "bibliotheek niet gevonden" en gaat ervan uit "oh, het Pg-stuurprogramma mag niet in deze Qt-build zitten", waar het in feite aanwezig is en niet kan worden geladen vanwege afhankelijkheidsproblemen, bibliotheekcompatibiliteitsproblemen, enz.
Om te bepalen waarom het niet laadt, kun je, zoals Frank Osterfeld voorstelde, een tool gebruiken zoals Dependency Walker (depends.exe
)
. Als u 32-bits code compileert op een 64-bits machine, wilt u de 32-bits afhankelijkheidsloper gebruiken.
Het is vrij waarschijnlijk dat het mislukt omdat er een afhankelijkheid is van qsqlpsql.dll
ontbreekt - ofwel libpq.dll
, of een van de bibliotheken die libpq
bouwen vereist. Dependency walker helpt dit te isoleren. Het is ook mogelijk dat u een 64-bits libpq.dll
. probeert te laden in een 32-bits programma, of omgekeerd.
Mogelijk vindt u het ook informatief om uw programma uit te voeren terwijl Process Monitor het traceert. Dit zal veel details opleveren over onder andere welke bestanden het probeert te openen / onderzoeken, en kan helpen bij het opsporen van zaken als onverwacht PATH
problemen.
Als je nog steeds vastzit, is er altijd de mogelijkheid om door te gaan met een debugger.