2009-06-15 3 views
0

Ich verwende eine Windows Server 2003 32-Bit-Maschine. Mit dieser Maschine habe ich eine COM-Komponente erstellt und in einer anderen Anwendung verbraucht und habe eine EXE-Datei.Kann eine 32-Bit-Windows Server 2003-Computeranwendung für eine Windows Server 2008 64-Bit-Maschine ausgeführt werden?

Jetzt kopiere ich diese EXE auf einen anderen Computer mit Windows Server 2008, 64-Bit installiert.

Und wenn ich versuche, diese EXE auszuführen, zeigt es so etwas wie "Debug Error: Diese Anwendung benötigt Laufzeit und endet auf eine ungewöhnliche Art und Weise".

Ist die Bitness-Kompatibilität (32-bit gegenüber 64-bit) der Grund dafür? Was kann ich auf einem Windows Server 2008-Computer ausführen?

+0

Bitte fügen Sie die * REAL * Fehlermeldung hinzu. Dieser ist in hohem Grade unuual – MSalters

+2

In welcher Weise ist diese Frage anders als http://stackoverflow.com/questions/981447/debug-error-runtime-neweded-for-name-exe-occurs-while-cusing-com-in- vc-proje/985788 # 985788? – eran

+0

Nein Beide sind ähnliche Mutter mein Problem wurde nicht behoben ... das ist yi versuche auf alle möglichen Arten., ........ – Cute

Antwort

2

Wenn Sie Ihre App kompilieren, müssen Sie sicherstellen, dass Sie sie für 32 Bit kompilieren. Standardmäßig kompiliert Visual Studio für "Any". Dies führt dazu, dass einige Teile Ihrer App 32 Bit groß sind und 64-Bit-DLLs verwenden.

+0

Mein test.exe wird nicht auf w2k8 machine was zu tun ??/ – Cute

0

Es sollte funktionieren, dank WOW64. Sie kompiliert als Debug oder Release-Version? Und kann es alle Referenzen finden, die Sie verwenden?

+0

Aber meine Anwendung wird nicht einmal ich registriere die com mit regasm.exe in w2k8 64-Bit-Maschine ... – Cute

0

Was Entwicklungsumgebung installieren verwenden Sie? Es scheint, dass Ihre Projekte so konfiguriert sind, dass sie die C++ - Laufzeit-DLL für eine Version verwenden, die nicht auf der Zielbox installiert ist.

Es sollte irgendwo in Ihrer Entwicklungsumgebung eine VC_Redist.exe sein, die Sie kopieren und auf der Zielbox ausführen können, um die erforderlichen Laufzeitbaugruppen zu installieren.

Oder gehen Sie zu alle Projekt, EXE und DLLs, und stellen Sie sicher, dass die Einstellung "Laufzeitbibliothek" auf der Seite Projekteigenschaften-> C/C++ -> Codegenerierung auf eine der Nicht-DLL-Optionen festgelegt ist (/ MTd oder/MT). Dadurch wird die Installation einer separaten Laufzeitumgebung auf dem Ziel-PC überflüssig, die EXEs und DLLs werden jedoch etwas größer.

Verwandte Themen