QLibrary::load() - Erweiterte Fehlerausgabe

Alles rund um die Programmierung mit Qt
Antworten
dama
Beiträge: 4
Registriert: 10. Februar 2011 14:47

QLibrary::load() - Erweiterte Fehlerausgabe

Beitrag 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.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag 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 ...
dama
Beiträge: 4
Registriert: 10. Februar 2011 14:47

Beitrag von dama »

Danke für die Antwort. Ich warte mal ab, evtl. ergibt sich ja noch was.
Antworten