Prozedureinsprungpunkt QtCore4.dll

Alles rund um die Programmierung mit Qt
Antworten
nico
Beiträge: 16
Registriert: 27. April 2009 21:42

Prozedureinsprungpunkt QtCore4.dll

Beitrag 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
cooky1976
Beiträge: 76
Registriert: 24. Januar 2008 00:19

Beitrag 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
nico
Beiträge: 16
Registriert: 27. April 2009 21:42

Beitrag 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?
nico
Beiträge: 16
Registriert: 27. April 2009 21:42

Beitrag 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!!
cooky1976
Beiträge: 76
Registriert: 24. Januar 2008 00:19

Beitrag 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)
nico
Beiträge: 16
Registriert: 27. April 2009 21:42

Beitrag 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!!
cooky1976
Beiträge: 76
Registriert: 24. Januar 2008 00:19

Beitrag 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 ;-)
Antworten