Использовать mfc42.dll в качестве регистрации бесплатно COM? - PullRequest
1 голос
/ 16 июня 2011

Я использую сторонний элемент управления Active-X, для которого требуется установить определенную версию MFC42.dll в системе пользователя.

Я пытаюсь добавить поддержку для установки моего продукта без прав администратора, и мне нужно установить, например, mfc42.dll в системную папку и зарегистрировать его, очевидно, делает это невозможным.

Сторонний Active-X используется в качестве свободного COM для регистрации с использованием файла манифеста, и мне было интересно, можно ли сделать то же самое для MFC42.dll и MSVCRT.DLL и сохранить их в папке приложения ? Кто-нибудь пробовал это?

1 Ответ

2 голосов
/ 16 июня 2011

Это невозможно сделать.MSVCRT и MFC42.dll не являются COM-объектами или даже сборками win32, поэтому к ним нельзя получить доступ через reg-free COM.

Вы можете установить mfc42.dll и msvcrt.dll app-local.Система будет отдавать предпочтение каталогу приложений по сравнению с копиями в системе 32.

(подробные сведения о том, как происходит связывание DLL, см. http://msdn.microsoft.com/en-us/library/ms682586(v=VS.85).aspx).

Вам не нужно устанавливатьэти библиотеки DLL, за исключением очень старых ОС (до Win2k), потому что современные и двоичные совместимые копии установлены в каждой версии Windows, вплоть до Windows 7.

Однако, даже если вы сделаете это,вам все равно нужно было бы синтезировать COM-манифест без регистрации для вашего элемента управления ActiveX и любых COM-объектов, от которых он зависит (например, прокси / заглушки).SDK включает в себя инструменты, которые могут помочь с этим, но если у вас нет источника для элемента управления ActiveX, он может быть нетривиальным.Также обратите внимание, что IE не может быть загружен безрегулярные элементы управления COM AX.Это возможно только на других хостах AX, таких как ATL или MFC.

Последнее замечание: вам также следует усердно работать, чтобы избежать зависимости от любого компонента, построенного на mfc42 или msvcrt.Они были созданы с очень старой версией инструментария VS, в которой отсутствуют многие важные исправления ошибок и обновления безопасности.И набор инструментов VC6, нацеленный на них (с 1998 года), не поддерживается в течение значительного времени.

Martyn

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