Seite 1 von 1

QLibrary::load() - Erweiterte Fehlerausgabe

Verfasst: 22. Februar 2011 16:54
von dama
Ausgangslage:
Ich lade Plugin X, welches seinerseits Plugin Y benötigt. Plugin Y ist im gesamten System nicht vorhanden.

QT Fehlermeldung (errorString()):
Cannot load library X: Das angegebene Modul wurde nicht gefunden.

Frage:
Gibt es eine Möglichkeit den genauen Grund des Scheiterns zu erfahren ohne externe Tools einsetzen zu müssen?
Konkret würde ich mir wünschen, an die Information zu kommen, welche mich auf die fehlende Bibliothek bzw. Bibliotheken direkt hinweist.

Codeschnippsel:

Code: Alles auswählen

QLibrary lib(fileName);
if (!lib.load())
{
  appendMessage("%1").arg(lib.errorString()));
  return 0;
}
Bin für alle Ansätze/Schlagwörter dankbar.

Verfasst: 23. Februar 2011 10:37
von RHBaum
ohne externe Tools einsetzen zu müssen
ein externes tools wirst brauchen, den brauchst aber zum (modularen) Programmieren auch noch an anderen stellen.
DependencyWalker !

Wenn VS nutzt, hasst den eh scho auf Platte, ansonsten kannst den von verschiedenen Seiten runterladen ...
http://www.dependencywalker.com/ z.b.

Loadlibrary bringt Dir zwar schon nen Fehlercode, wenn in deren startup ne andere dll versucht wird zu laden, die das system nicht findet. Es sagt dir aber nicht welche ....
Um zu ermitteln welche Abhaengigkeit nicht gegeben ist, wirst nur mit so einem Hilfstool rausfinden koennen. Oder du hasst ne ausfuerhliche doku von der Dll, wo die abhaengigkeiten beschrieben sind ...

Ne andere Möglichkeit kenn ich nicht ....
und eine fehlermeldung im Programm zu bringen, und gleich mit hinweiss drauf welche dlls noch fehlen und wo es die gibt ... geht nur beim direkten aufruf, muesste also die dll unterstuetzen, die du anziehst !
ansonsten glaub ich hasst keine chance.

Ciao ...

Verfasst: 24. Februar 2011 09:44
von dama
Danke für die Antwort. Ich warte mal ab, evtl. ergibt sich ja noch was.