Seite 1 von 1
Prozedureinsprungpunkt QtCore4.dll
Verfasst: 3. Mai 2009 23:14
von nico
Hallo,
ich habe ein Programm geschrieben, dass beim Start aus Qt-Creator wunderbar funktioniert.
Nun habe ich die Release-Datei gebaut und mit den benötigten Dll's in einen Ordner kopiert, um das Programm dann weitergeben zu können.
Beim Start bekomme ich mit der Datei Qt/qt/bin/Core4.dll die Fehlermeldung:
Der Prozedureinsprungpunt "?append@?$QVector@VQPoint@@@@QAEXABVQPoint@@@Z" wurde in der DLL "QtCore4.dll" nicht gefunden.
Nutze ich dagegen die Datei Qt/bin/QtCore4.dll kommt folgende Fehlermeldung:
Der Prozedureinsprungpunkt "_Z21qRegisterResourceDataiPKhS0_S0_" wurde in der DLL "QtCore4.dll" nicht gefunden.
Ich hoffe, ihr könnt mir weiterhelfen.
Vielen Dank schonmal im Voraus!!
MfG nico
Verfasst: 4. Mai 2009 04:05
von cooky1976
Hallo,
wie es sich liest handelt es sich um ein Abhängigkeistproblem der Libraries. Lade Dir mal einen Dependency Walker aus dem Internet runter und analysiere mal Deine exe-Datei. Ich nehme an, dass die dll, die geladen wird, nicht umbedingt die ist, mit der das Proggi kompiliert wurde.
Am Besten immer die dll's in das Verzeichnis kopieren, in welchem das Programm ausgeführt wird.
Sparte mir einiges an Stress
Gute Nacht
Alexander
Verfasst: 4. Mai 2009 22:30
von nico
Hallo Alex,
ich habe mir nun den Dependency Walker installiert.
Der sagt mir:
Code: Alles auswählen
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
Im Modul QTCORE4.DLL ist die Link-Checksum von der Real-Checksum verschieden.
Nun habe ich über die Windows-Suche nach QtCore4.dll gesucht (auch in indizierten Orten) und jede gefundene dll mit den anderen benötigten dll's zusammen mit der exe in einen Ordner kopiert.
Es hat keine einzige funktioniert - kommt immer eine der beiden Fehlermeldungen.
Ich habe nix (de-) installiert seitdem ich das Programm compiliert habe und beim Start aus QtCreator funktioniert es nach wie vor.
Kann ich denn herausfinden, welche DLL aus welchem Pfad beim Compilieren benutzt wurde?
Verfasst: 5. Mai 2009 22:49
von nico
Hi again,
ich habe nun herausgefunden, dass dies nur passiert, wenn ich das QtWebKit Module verwende.
Muss ich denn dann etwas ändern? Der Dependency Walker zeigt an, dass viele Funktionen uA in der QtCore4.dll fehlen.
Bin dankbar für jede Hilfe!!
Verfasst: 5. Mai 2009 22:57
von cooky1976
Tu' Dir mal einen Gefallen ... suche mal im Installationsverzeichnis von Qt nach DLL's. Könnte Deine Frage beantworten.
By the way ... im Dependency Walker bekommt man auch die Funktionen von DLLs angezeigt (meiner macht's)
Verfasst: 6. Mai 2009 10:32
von nico
Also das Problem ist gelöst.
Ich habe probeweise die Exe in mein Qt/qt/bin Verzeichnis kopiert und da gestartet. Das ging. Dann habe ich die Exe mit allen DLL's in einen Ordner kopiert und nach und nach die DLL's gelöscht. Am Ende sind zwar trotzdem genau die übrig geblieben, die ich schon vorher im gleichen Ordner hatte, aber es geht jetzt.
Ich hatte definitiv genau diese QtCore4.dll schon probiert. Es lag anscheinend daran, dass die QtCore4.dll aus Qt/qt/bin war und die QtGui4.dll aus Qt/bin.
Auf jeden Fall nochmal vielen Dank für deine Hilfe!!
Verfasst: 6. Mai 2009 13:59
von cooky1976
Wirklich geholfen habe ich Dir ja nicht, das meiste hast Du ja selber gemeistert und jede Menge gelernt *hoffe ich*.
Ich habe Dir nur die Richtung gezeigt ;-)