"Diese Anwendung konnte nicht gestartet werden..." - Trotz static CRL linking
-
player424 schrieb:
das kann nicht sein, da eine anwendung für ein 32-bit system niemals auf einem 64-bit system laufen kann.
So ein Unsinn. Auf Seite von Windows gibt's WOW64, AMD64- bzw Intel64-CPUs haben nen 32-Bit-Kompatibilitätsmodus.
-
player424 schrieb:
eine 32-bit anwendung läuft nicht auf einem 64-bit system. musst sie nochmal neu für 64-bit kompilieren.
Das ist Unsinn!
Auf einem 64-Bit Windows-Betriebssystem laufen sehr wohl 32-Bit Applikationen, sogar aus Windows95-Zeiten.
Sie werden als Wow64Process ausgeführt.Eine Anwendung in 64-Bit zu kompilieren bringt letztendlich "nur" Optimierungen die auf einem 64-Bit System zur Entfaltung bringen. Z.B. Größerer Speicher-Adressraum, schnellere Fließkommabibliotheken, Wegfall der Wow64-Simulation, ...
Dafür können sie nicht mehr auf 32-Bit Systemen gestartet werden.
Martin
[Nachtrag:] Shit
mikey und Badestrand sind schneller als ich...
-
spaziergänger schrieb:
mikey schrieb:
An was kann es noch liegen?
Prüf die EXE mal mit einem "Dependency Walker". Vielleicht hast du ja nur irgendwas triviales übersehen.
Ja, das Programm hat exakt zwei Abhängigkeiten: KERNEL32.dll und NTDLL.dll... sollte in jedem Fall vorhanden sein auf Windows Server 2003

-
Das kan ich mir kaum vorstellen, das keine Abhängigkeit zur user32.dll vorhanden ist.
-
Martin Richter schrieb:
Das kan ich mir kaum vorstellen, das keine Abhängigkeit zur user32.dll vorhanden ist.
Das liegt über eurer Vorstellungskraft: simple Konsolenanwendungen haben keine Abhängigkeit von der user32.dll

-
mikey schrieb:
Allerdings bekomme ich beim Starten der Anwendung die Fehlermeldung "Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht korrekt ist.", obwohl ich schon statisch gegen die CRL gelinkt habe.
Das ist fast unmöglich... schau mal in das Ereignisprotokoll!
-
Etwa LoadLibrary benutzt ?

-
Profiling im Dependency Walker kann bei der Diagnose hilfreich sein.
-
Lass es einfach mal unter Dependencywalker auf dem Zielsystem laufen (glaube F9
drücken).
-
player424 schrieb:
eine 32-bit anwendung läuft nicht auf einem 64-bit system. musst sie nochmal neu für 64-bit kompilieren.
Schön gedacht. Im Prinzip ja, es wurde auch schon genannt das es einen "Kompatibilitäsmodus" gibt. Ich möchte aber darauf hinweisen, das dieser Modus nur ein emulator ist, im vergleich eines SNES Emulators um den Mario und Luigi auf dem PC zu quälen.
Daher ist es wohl besser auf crosscompiling zu verzichten, wenn so oder so auf dem gleichen System das Prog ausgeführt wird.
Grüüüße
-
zeusosc schrieb:
player424 schrieb:
eine 32-bit anwendung läuft nicht auf einem 64-bit system. musst sie nochmal neu für 64-bit kompilieren.
Schön gedacht. Im Prinzip ja, es wurde auch schon genannt das es einen "Kompatibilitäsmodus" gibt. Ich möchte aber darauf hinweisen, das dieser Modus nur ein emulator ist, im vergleich eines SNES Emulators um den Mario und Luigi auf dem PC zu quälen.
Was soll den da Emuliert sein? Auf den heuten x64 System wird nix emuliert! Nur auf dem IA64 (welcher aber kaum eingesetzt wird).
Also nochmals: Woher hast Du diese Info? hast Du in den Source-Code von Windows geschaut? Ich schon

-
Du willst mir jetzt doch nicht ernsthaft erzählen das 32 bit memnonics auf einen 64 bit system ohne Konvertierung laufen???
Sei gegrüßt
-
Genau, das will ich Dir erzählen

Schau doch mal einfach in das Intel-Manual... (nur einige wenige Systembefehle werden an das Host-OS weitergereicht)Das ist ja gerade der Trick und der große Vorteil an x64! Das ist ein x86 mit erweitertem Befehlssattz. Deshalb hat sich auch der x64 (AMD) gegenüber dem IA64 (Intel)durchgesetzt und Intel musste mit einem eigenen x64 nachziehen...
-
Gut,.. ich werde mir den Datasheet mal durchlesen, im laufe des Tages.
Falls Du gerade n link zu diesem parat hast und den Posten magst, bräuchte ich nachher net suchen

Grüße
-
Weil Du es bist...
http://www.intel.com/products/processor/manuals/
Intel
64 and IA-32 Architectures Software Developer's ManualVolume 1: Basic Architecture
http://www.intel.com/Assets/PDF/manual/253665.pdfVolume 2A: Instruction Set Reference, A-M
http://www.intel.com/Assets/PDF/manual/253667.pdfVolume 2B: Instruction Set Reference, N-Z
http://www.intel.com/Assets/PDF/manual/253667.pdfVolume 3A: System Programming Guide
http://www.intel.com/Assets/PDF/manual/253668.pdfVolume 3B: System Programming Guide
http://www.intel.com/Assets/PDF/manual/253669.pdfIntel
64 and IA-32 Architectures Optimization Reference Manual
http://www.intel.com/Assets/PDF/manual/248966.pdf