Регистрация 32-битной DLL в 64-битной системе - PullRequest
0 голосов
/ 27 февраля 2012

Я работаю с тестовым кодом для создания документов Visio.Я использую Visual Studio 2010 в Windows 7 64 бит.Когда я запускаю свою программу и пытаюсь создать новый объект приложения Visio в программе, я получаю следующее исключение:

Не удалось получить фабрику классов COM для компонента с CLSID {00021A20-0000-0000-C000-000000000046}из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Вот код, вызывающий исключение:

Visio.Application va = new Microsoft.Office.Interop.Visio.Application();

Я проверил настройки проектапостроить 32-битное приложение.Я отследил его до 64-битной Windows не может загрузить 32-битную .COM Visio DLL.Я попытался зарегистрировать dll с помощью regsvr32, но получил сообщение об ошибке, что DLLregisterserver точки входа не найден.MDSN говорит, что это означает, что файл не является действительным .dll.Каждый раз, когда я пытаюсь зарегистрировать Microsoft.Office.Interop.Visio.dll из библиотек Visual Studio.можно ли это исправить?Есть ли 64-битная версия библиотек .COM?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Сборка Interop, которую вы пытаетесь загрузить, зависит от собственных библиотек Visio.Чтобы загружать эти библиотеки DLL в процессе, они должны соответствовать разрядности вашего процесса.

Итак, вам нужно установить 32-битную Visio.

0 голосов
/ 27 февраля 2012

Следуйте по этой ссылке . На этой странице объясняется, как установить dll как в 32-битной системе, хотя вы используете 64-битную систему

Вы можете найти 32-разрядную версию REGSVR32 в 64-разрядной системе по пути -% systemroot% \ SysWoW64 \ regsvr32.exe.

WoW = обозначает Windows в Windows

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