Запускать приложения в Windows 7 как 32-битные - PullRequest
2 голосов
/ 01 сентября 2011

Итак, у нас есть приложение, которое компилируется в «Любой процессор». Он будет работать в 64-битном режиме на компьютерах с Windows 7, но при попытке выполнить вызов для взаимодействия, работающего в 32-битном режиме, произойдет ошибка.

Я прошел и изменил цели компиляции на целевой x86 для проекта, скомпилировал и запустил его локально, и он работал нормально.

Однако, когда это изменение было зафиксировано, оно все еще работает как 64-разрядная на компьютерах с Windows 7 в рабочем состоянии.

Когда я внес изменение, я просто открыл диспетчер конфигурации в VS2010, изменил его на x86, сохранил его и зафиксировал изменение для каждого проекта в решении.

Как мне заставить его работать в 32-битном режиме? Нужно ли что-то менять?

Ответы [ 2 ]

5 голосов
/ 01 сентября 2011

Требуется, чтобы инструмент corflags в SDK

corflags MyApp.exe /32bit+

изменил исполняемый файл как 32-битный процесс.

И наоборот

corflags MyApp.exe /32bit-

Изменит exe на AnyCPU

corflags MyApp.exe

Скажет вам, что в заголовке для exe, так что вы действительно сможете увидеть, на что он нацелен.

4 голосов
/ 01 сентября 2011

Это прискорбная ловушка в VS2010, параметр «Платформа активного решения» в Configuration Manager не относится к управляемым проектам на C # и VB.NET. Для C # вы должны использовать Project + Properties, вкладку Build, настройку цели Platform. Имеет значение только настройка запуска (EXE) проекта.

...