32-битная библиотека в Office 64-битная - PullRequest
6 голосов
/ 18 ноября 2010

Я понимаю, что не могу загрузить 32-битную DLL в 64-битном процессе.У меня есть 32-битная DLL (компонент VB6), без исходного кода, который загружается в макрос автоматизации Excel.Какие у меня варианты?

1 Ответ

4 голосов
/ 19 ноября 2010

32-битные надстройки не поддерживаются на 64-битных. Microsoft рекомендует использовать 32-разрядную версию Office, если только вы не столкнетесь с ограничениями памяти 32-разрядного процесса, которые возможны только в том случае, если вам нужно работать с очень большими электронными таблицами:

Ниже приведены рекомендации по установке редакции Office 2010:

  • Если пользователи в вашей организации зависят от существующих расширений Office, таких как элементы управления ActiveX, третьесторонние надстройки, собственные решения, созданные на основе предыдущих версий Office, или 32-разрядные версии программ, которые напрямую взаимодействуют с Office, мы рекомендуем установить 32-разрядный Office 2010 (установка по умолчанию) на компьютеры, на которых установленыПоддерживаемые 32-разрядные и 64-разрядные операционные системы Windows.

  • Если некоторые пользователи в вашей организации являются опытными пользователями Excel, работающими с электронными таблицами Excel размером более 2 гигабайт (ГБ), ониМожно установить 64-разрядную версию Office 2010. Кроме того, если у вас есть собственное решениеразработчики, мы рекомендуем, чтобы эти разработчики имели доступ к 64-разрядной версии Office 2010, чтобы они могли тестировать и обновлять ваши собственные решения в 64-разрядной версии Office 2010.

Если вам нужна 64-битная версия из-за ограничений памяти, у вас есть следующие опции :

  • Если выИсходный код, вы можете создать 64-разрядную версию самостоятельно,

  • Вы можете связаться с поставщиком для получения обновленной версии,

  • Youможно искать альтернативное решение.

На самом деле существует четвертый вариант, который не упоминается в этой статье Microsoft: вы можете создать 32-битный вне процессаCOM-сервер, который служит прокси между вашими 64-битными макросами и устаревшими 32-битными компонентами COM или создает приложение COM +.Пример приведен здесь:

Доступ к 32-битным DLL из 64-битного кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...