Может ли 32-разрядное компьютерное приложение Windows Server 2003 работать на 64-разрядном компьютере Windows Server 2008? - PullRequest
0 голосов
/ 15 июня 2009

Я использую 32-битный компьютер с Windows Server 2003. На этой машине я создал COM-компонент, использовал его в другом приложении и получил файл EXE.

Теперь я копирую этот EXE на другую машину, установленную с Windows Server 2008, 64-разрядная версия.

И когда я пытаюсь запустить этот EXE, он показывает что-то вроде «Ошибка отладки: это приложение требует выполнения и завершает работу необычным образом».

Является ли причина этого совместимостью по битности (32-битной или 64-битной)? Что мне может понадобиться для запуска этого на компьютере с Windows Server 2008?

Ответы [ 4 ]

2 голосов
/ 15 июня 2009

Когда вы компилируете свое приложение, вам нужно убедиться, что вы скомпилировали его для 32-битной версии. По умолчанию Visual Studio компилируется для «Любого». Это приводит к тому, что некоторые части вашего приложения становятся 32-битными и используют 64-битные DLL.

1 голос
/ 15 июня 2009

.NET Framework, встроенный в Server 2008, является v3.0. Требует ли ваше приложение .NET v3.5? Если это так, вам нужно установить распространяемый пакет .NET 3.5 в Server 2008.

http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe

0 голосов
/ 15 июня 2009

Какую среду разработки вы используете? Похоже, что ваши проекты настроены на использование DLL-библиотеки времени выполнения C ++ для версии, которая не установлена ​​на целевом компьютере.

Где-то в вашей среде разработки должно быть VC_Redist.exe, которое вы можете скопировать и выполнить в целевом окне для установки необходимых сборок во время выполнения.

Или перейдите к каждому проекту, EXE и DLL и убедитесь, что для параметра «Библиотека времени выполнения» на странице «Свойства проекта» -> C / C ++ -> «Генерация кода» задан один из Параметры DLL (/ MTd или / MT). Это избавит от необходимости устанавливать отдельную среду выполнения на целевом ПК, но сделает ваши EXE-файлы и DLL-файлы немного больше.

0 голосов
/ 15 июня 2009

Должно работать, благодаря WOW64 . Вы скомпилировали как отладочную или выпускную версию? И может ли он найти все ссылки, которые вы используете?

...