Использование 32-битных расширений оболочки в Windows 7 64-bit

Я хотел бы разработать расширение оболочки (обработчик контекстного меню), совместимое как с Windows XP SP2 (32-разрядная версия), так и с Windows 7 64-разрядная версия.

Можно ли запускать 32-разрядные расширения оболочки в 64-разрядной версии Windows, или же необходимо, чтобы расширение оболочки было перенесено / перестроено на 64-разрядное для использования в 64-разрядной версии Windows 7?

Есть ли какие-либо недостатки / известные проблемы при использовании 32-битных расширений оболочки в 64-битных операционных системах?

32-битные приложения прекрасно работают в 64-битной Windows, но я не уверен насчет расширений оболочки, поскольку, если я правильно понимаю, расширения оболочки в-прок COM-серверы загружаются в процесс Explorer, который должен быть 64-битным процессом в 64-битной Windows … или это форма 32-битной эмуляции, предусмотренная для 32-битных расширений оболочки, работающих в 64-битной ОС?

8

Решение

Расширение оболочки — это просто DLL, и правило состоит в том, что 32-разрядные приложения могут загружать только 32-разрядные библиотеки DLL, а 64-разрядные приложения могут загружать только 64-разрядные библиотеки DLL. Обойти это невозможно.

32-разрядное расширение оболочки может по-прежнему быть полезным в 64-разрядной системе, поскольку это означает, что любые 32-разрядные сторонние приложения, загружающие расширения оболочки, будут работать. Например, TortoiseSVN поставляется с 32-разрядной и 64-разрядной версиями и устанавливает их, и поэтому в 64-разрядной версии Windows вы все равно можете получить доступ к контекстным меню TortoiseSVN из 32-разрядных приложений (например, стороннего файлового менеджера).

Но сам по себе Explorer является 64-битным встроенным в 64-битной Windows, поэтому вам нужна 64-битная версия вашего расширения, если вы хотите, чтобы оно работало в Explorer.

10

Другие решения

Расширения оболочки являются компонентами COM. Если вы устанавливаете его как внепроцессный сервер, Windows (DCOM) должен позаботиться обо всех <-> 64-битная сортировка.

Компилятор MIDL создаст 64-битную заглушку, которая загружается в процессе.

0

Вы можете использовать 32-битный проводник, как xplorer² в 64-битной Windows. Они могут обрабатывать 32-битные расширения DLL, которые могут использоваться для поиска контента, предварительного просмотра данных и отображения в контекстном меню. Встроенный проводник 64-битный, который игнорирует 32-битные расширения.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector