Сейчас все больше программного обеспечения переносится на 64-битные системы Windows. При этом разработчики старались обеспечить обратную совместимость и работу 32-хбитных приложений в таких системах.
Но не всегда 32-битное приложение соизволяет запуститься и нормально работать. Для решения вопросов совместимости есть соответствующие разделы документации и соответствующие инструменты. Но не всегда все так сложно. Вот несколько указаний как можно поправить дело.
Во-первых, надо понимать, что система x64 поддерживает работу 32-битных приложений и для этого эмулирует подходящее окружение. В частности для этого есть специальные разделы реестра в ветке SysWOW64, с которыми работают все 32-битные приложения, в том числе там регистрируются 32-битные COM-приложения. Это наиболее известный факт.
Но есть еще один полезный факт: системные исполняемые модули на диске так же присутствуют в двух видах: 64-битные по обычным путям %systemroot%, а 32-битные по пути %systemroot%\SysWOW64.
Как это использовать?
Если вы хотите зарегистрировать 32-битную DLL, то вам нужно вызывать:
%systemroot%\SysWOW64\regsvr32.exe <Имя DLL>
Если вы хотите запустить VB-скрипт, который создает 32-битные COM-объекты (например, Internet Explorer или Word), то вам нужно вызывать:
%systemroot%\SysWOW64\cscript.exe <Имя скрипта>
Третий факт. Если на конкретной системе нужно запускать все скрипты в 32-битном режиме, то можно поменять ассоциацию в реестре. Ключи реестра описаны в статье KB248121
HKEY_CLASSES_ROOT\JSEFile\Shell\Open2\Command
HKEY_CLASSES_ROOT\JSFile\Shell\Open2\Command
HKEY_CLASSES_ROOT\VBEFile\Shell\Open2\Command
HKEY_CLASSES_ROOT\VBSFile\Shell\Open2\Command
HKEY_CLASSES_ROOT\WSFFile\Shell\Open2\Command
(Конечно можно менять не все значения, а только для нужного скриптового языка)
Старое значение:
Default = C:\Windows\System32\CScript.exe «%1» %*
Новое значение:
Default = C:\Windows\System32\ SysWOW64\CScript.exe «%1» %*
Надеюсь, эти нехитрые приемы избавят вас от головной боли при переносе приложений на 64-битные системы.
Filed under: Без рубрики | 10 комментариев »