Поделиться через


Элементы управления ActiveX MFC: Распределение управления ActiveX

В этой статье описывается несколько проблем, связанных с распространение элементов управления ActiveX.

  • Версии ANSI или юникод управления

  • Задать элементы управления ActiveX и Распространения библиотек DLL

  • Регистрация элементов управления

    ПримечаниеПримечание

    Дополнительные сведения о распространении управления ActiveX см. в разделе Распространение элементов управления.

Версии ANSI или юникод управления

Необходимо решить, следует ли отправить ANSI или юникод версии элемента управления или для того и другого.Это решение исходя из факторов переносимости своиственных в ANSI и наборами символов в кодировке юникод.

Управления ANSI, которые работают во всех операционных систем Win32, допускать максимальная совместимость между разными операционными системами Win32.Управления в юникоде работают только на Windows NT (версии 3.51 или более поздней), но не на Windows 95 или Windows 98.Если совместимость в первичной забота, то грузите управления ANSI.Если элементы управления выполняются только на Windows NT, можно выдать управления в юникоде.Можно также выбрать доставки и иметь приложение установить версию наиболее подходит для операционной системы пользователя.

Задать элементы управления ActiveX и Распространения библиотек DLL

Программу установки можно гарантировать с вашими элементами управления ActiveX должна создать специальный подкаталог каталога окон и установить файлы .OCX элементов управления в ней.

ПримечаниеПримечание

Использовать API GetWindowsDirectory окон в программе установки для получения имени каталога windows.Можно создать имя вложенного каталога от имени ваших компании или продукта.

Программа установки должна установить необходимые распространяемые файлы DLL в каталоге системы windows.Если какие-либо dll-библиотека уже имеется на компьютере пользователя, то программа установки необходимо сравнить их версии с версиями необходимо задать.Переустановите файл, только если его номер версии более высоком уровне, чем уже установлен файл.

Поскольку элементы управления ActiveX может использоваться только в приложениях OLE-контейнер нет необходимости распределения полный набор ЯВЛЯЕТСЯ библиотеки DLL с вашими элементами управления.Можно предполагать, что, содержащий приложение (или операционная система сама) имеется стандартные библиотеки DLL OLE.

Регистрация элементов управления

Элемент управления, прежде чем можно использовать соответствующие записи, необходимо создать для него в базе данных регистрации windows.Некоторые контейнеры элемент управления ActiveX предоставляют пункт меню для пользователей для регистрации новых элементов управления, но эта функция не может быть доступна во всех контейнерах.Поэтому может потребоваться программу установки регистрация элементов управления при их установленны.

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

Использовать API windows LoadLibrary для загрузки библиотеки DLL элемента управления.Далее используется GetProcAddress получить адрес функции DllRegisterServer» «.Наконец, вызовите функцию DllRegisterServer.В следующем образце кода показан один из возможных метод, где hLib хранит дескриптор библиотеки элементов управления и lpDllEntryPoint хранит адрес функции DllRegisterServer» «.

HINSTANCE hLib = LoadLibrary(pszDllName);

if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
   AfxMessageBox(IDS_LOADLIBFAILED); //unable to load DLL
   iReturn = FAIL_LOAD;              //unable to load DLL
}

// Find the entry point.
lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
if (lpDllEntryPoint != NULL)
   (*lpDllEntryPoint)();
else
   ;// Unable to locate entry point

Преимущество зарегистрировать элемент управления непосредственно, что нет необходимости вызывать и загрузки отдельного процесса (а именно, REGSVR32), уменьшение время установки.Кроме того, так как регистрация внутренний процесс, программа установки может обрабатывать ошибки и непредсказуемые ситуации лучше, чем внешний процесс может.

ПримечаниеПримечание

Перед тем как программа установки установит элемент управления ActiveX, она должна вызывать OleInitialize.После завершения программы установки, вызовите OleUnitialize.Это гарантирует, что системные библиотеки DLL OLE в правильном состоянии для регистрации элемента управления ActiveX.

Необходимо зарегистрировать MFCx0.DLL.

См. также

Основные понятия

Элементы управления ActiveX MFC