Frage

Ich habe ursprünglich eine Win32 -Anwendung auf Win7 32bits mit VC9.0 entworfen. Ich habe kürzlich auf Win7 64 -Bit verbessert und versucht, die vorherige Anwendung auszuführen.

Bauen läuft fein (Win32 -Anwendung), aber nach Laufzeit erhalte ich den Fehler [...] mit Code -1073741701 (0xc000007b)."

Ich denke, diese Ergebnisse des Ladens einer 64bits -Version einer [beabsichtigten] 32bits DLL.

Spezifische Abhängigkeiten für dieses Projekt sind: sdl.lib sdlmain.lib sdl_ttf.lib openGl32.lib glu32.lib wininet.lib

SDL und SDL_TTF sind nur in der 32bits -Version. Ich gehe davon aus, dass Visual Studio klug genug ist, um die OpenGL- und Glu Lib -Dateien in syswow64 zu holen, während ich eine Win32 -Anwendung anfordere.

Könnte es an Wininet liegen? Oder habe ich einen Fehler gemacht?

Vielen Dank,

War es hilfreich?

Lösung

Es scheint, dass Sie eine 64-Bit-DLL in einen 32-Bit-Prozess laden oder umgekehrt. So würde ich die beleidigende DLL aufspüren.

Der erste Schritt besteht darin, Dumpbin.exe auszuführen (verwenden Sie eine VS -Eingabeaufforderung, um sie auf den Pfad zu erhalten) auf der ausführenden Datei, um sicherzustellen, dass die Architektur das ist, was Sie erwarten: dumpbin.exe /headers foo.exe. In der Datei -Header -Ausgabe sollten Sie einen "Maschinen" -Wert von "x86" oder "x64" sehen. In der optionalen Headerausgabe sollten Sie eine Magie von "PE32" (für x86) oder "pe32+" (für x64) sehen.

Der nächste Schritt besteht darin, den entsprechenden Abhängigkeitswanderer zu betreiben, der bei verfügbar ist www.dependencywalker.com, abhängig von der Architektur (x86 oder x64) der ausführbaren Datei. Dieses Tool sollte Ihnen mitteilen, ob es eine Abhängigkeit von den Suchpfaden findet, die nicht derselben Architektur enthält.

Wenn Dependenty Walker ein Problem findet, besteht die Lösung darin, die beleidigende Bibliothek durch eine Bibliothek derselben Architektur zu ersetzen oder sicherzustellen, dass sich die richtige Bibliothek vor der falschen Bibliothek basierend auf Suchpfaden befindet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top