Seite 1 von 1

DLL Problem

Verfasst: 30. März 2006 11:21
von scy79
Hi,
ich habe da noch ein weiteres Problem. Und zwar bekomme ich nachdem das Kompilieren geklappt hat, wobei die Warnings:
qatomic.h(145) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
qatomic.h(133) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
auftraten.
Beim Ausführen des Projektes die Fehlermeldung: Prozedureinsprungspunkt in der QtGuid4.dll nicht gefunden. Da es sich um ein Projekt handelt, welches mit Qt 4.0.0 erstellt wurde und ich aber Qt 4.1.1 nutze, glaube ich, das die dll Dateien der beiden Versionen unterschiedlich sind. Hat jemand eine Idee, wie ich dieses Problem lösen kann?

Desweiteren nutze ich die Open Source Version von Qt und MSVC.NET 7.1

Grüsse

Verfasst: 30. März 2006 15:01
von michams
qatomic.h(145) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
qatomic.h(133) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
Auch wenn ich nicht genau sagen kann, ob das 100%ig ok ist, was da passiert, denke ich doch, das ist so gewollt. Die Warnings sind daher vermutlich vernachlässigbar, ändern könntest du es eh nicht, ohne am Code rumzudoktern, was ich nun wieder lassen würde.
Du kannst beide ausblenden, indem du in die qatomic.h oben (bei den #includes) reinschreibst:
#pragma warning (disable:4311)
#pragma warning (disable:4312)
Beim Ausführen des Projektes die Fehlermeldung: Prozedureinsprungspunkt in der QtGuid4.dll nicht gefunden. Da es sich um ein Projekt handelt, welches mit Qt 4.0.0 erstellt wurde und ich aber Qt 4.1.1 nutze, glaube ich, das die dll Dateien der beiden Versionen unterschiedlich sind. Hat jemand eine Idee, wie ich dieses Problem lösen kann?
Genau, 4.0 und 4.1 haben unterschiedliche DLLs. Da hilft nur Qt neu zu compilieren.

Verfasst: 31. März 2006 09:58
von scy79
Hi, die Warnings zu unterdrücken hat geklappt.... Danke.
Nur das dll-Problem ist noch nicht gelöst.

Wenn ich es richtig verstanden habe brauche ich doch die Qt Version 4.0.0, um den Fehler zu beheben. Doch leider scheint es kann man die Open Source Variante nicht mehr downloaden. Oder gibt es noch ne andere Möglichkeit?

Grüße

Verfasst: 31. März 2006 10:35
von michams
Nein, ja, nein,...ähm...
Offenbar hast du ein Qt4.1.1, mit dem deine Software compiliert und auch gelinked wird, bei ausführen werden aber die DLLs von 4.0.0 geladen.
Wenn du Qt4.1.1 bereits compiliert hast, dann liegen vermutlich in irgendeinem Suchpfad des Systems (zB C:\windows\system32 o.ä.) alte Qt DLLs. Such am besten mal nach qtcore4.dll und schau dir die Versionsinfo an. Falls du tatsächlich keine Qt4.1.1 DLLs (zB im bin-Ordner von Qt) hast, bleiben 2 Möglichkeiten:
- entweder du besorgst dir tatsächlich ein 4.0.0 (liegt auf dem ftp Server der Trolle: ftp://ftp.trolltech.com/qt/source/qt-wi ... -4.0.0.zip)
- oder du mußt die neuen DLLs mit der 4.1.1 erstellen (der ganze Kram mit configure).

Verfasst: 31. März 2006 10:50
von BartSimpson
falls du die alten Versionen suchst, die liegen neben den neuen auf ftp://ftp.trolltech.com/qt/source

Verfasst: 31. März 2006 14:40
von scy79
Danke für die Hilfe. Ich habe den Fehler gefunden.
Und zwar habe ich ein Delta3D Projekt in dem Qt mit integriert ist.
Die Qt dll`s in Delta3D waren allerdings veraltet, deswegen hat es nicht hingehauen.
Ich habe sie ersetzt und alles hat geklappt.... :)