Udostępnij za pośrednictwem


Formanty ActiveX MFC: Rozmieszczanie formantów ActiveX

W tym artykule omówiono kilka problemów związanych z redystrybuowanie formantów ActiveX:

  • ANSI lub Unicode kontroli wersji

  • Instalowanie formantów ActiveX i biblioteki DLL do dystrybucji

  • Rejestrowanie kontroli

    [!UWAGA]

    Dodatkowe informacje na temat redystrybuowanie formantów ActiveX, zobacz Redystrybuowanie formanty.

ANSI lub Unicode kontroli wersji

Należy zdecydować, czy należy wysłać ANSI lub Unicode wersja formantu lub oba.Niniejsza decyzja opiera się na przenośność czynniki związane z zestawów znaków ANSI i Unicode.

Formanty ANSI, które działają we wszystkich systemach operacyjnych Win32, umożliwić maksymalnej przenośności między różnymi systemami operacyjnymi Win32.Formanty Unicode działają tylko systemu Windows NT (w wersji 3.51 lub nowszy), ale nie w systemie Windows 95 lub Windows 98.Jeżeli przenoszenia jest główną troską, formanty ANSI statku.Jeśli formanty będą uruchamiane tylko w systemie Windows NT, można wysłać formanty Unicode.Można również wybrać zarówno statku i aplikacja zainstalować wersję najbardziej odpowiedni dla systemu operacyjnego użytkownika.

Instalowanie formantów ActiveX i biblioteki DLL do dystrybucji

Program instalacyjny, który dostarczyć formanty ActiveX należy utworzyć specjalne podkatalogu w katalogu Windows i zainstalować formantów.OCX w nim plików.

[!UWAGA]

Narzędzie Windows GetWindowsDirectory interfejsu API w program instalacyjny, aby uzyskać nazwę katalogu systemu Windows.Można uzyskać nazwy podkatalogu od nazwy firmy lub produktu.

Program instalacyjny, należy zainstalować niezbędne redystrybuowane pliki DLL w katalogu systemu Windows.Jeśli biblioteki DLL są już obecne na komputerze użytkownika, program instalacyjny należy porównać ich wersje z instalowanej wersji.Zainstaluj ponownie plik tylko wtedy, gdy jego numer wersji jest wyższy niż plik już jest zainstalowany.

Ponieważ formanty ActiveX mogą być używane tylko w aplikacji kontenera OLE, nie ma potrzeby rozpowszechniania pełny zestaw bibliotek DLL OLE z formantów.Można przyjąć, że standard OLE DLL zainstalowane ma zawierające aplikacji (lub samego systemu operacyjnego).

Rejestrowanie kontroli

Przed użyciem formantu odpowiednie zapisy muszą utworzonej dla niego w bazie danych rejestracji systemu Windows.Niektóre kontenery formantu ActiveX zapewniają elementu menu dla użytkowników zarejestrować nowe formanty, ale ta funkcja nie może być dostępna w pojemnikach, wszystkie.Dlatego może być program instalacyjny, aby formanty ActiveX, jeżeli są zainstalowane.

Jeśli wolisz, można napisać program instalacyjny, aby zarejestrować formant bezpośrednio w zamian.

Użyj LoadLibrary Windows API, aby załadować formantu DLL.Następnie należy użyć GetProcAddress celu uzyskania adresu funkcji "DllRegisterServer".Wreszcie, call DllRegisterServer funkcji.Poniższy przykładowy kod ilustruje jednej metody możliwe, gdy hLib przechowuje dojście biblioteki kontroli i lpDllEntryPoint przechowuje adres funkcji "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

Zaletą bezpośrednio rejestrowanie kontroli jest, że nie trzeba wywołać i załadować oddzielnym procesie (mianowicie REGSVR32), skracając czas instalacji.Ponadto ponieważ wewnętrznego procesu rejestracji, program instalacyjny może obsługiwać błędy i można lepiej niż zewnętrzne proces nieprzewidzianych sytuacjach.

[!UWAGA]

Zanim program instalacyjny instaluje formant ActiveX, należy wywołać Funkcja OleInitialize.Po zakończeniu działania programu Instalatora wywołania OleUnitialize.Zapewnia to, że biblioteki DLL systemu OLE są w odpowiednim stanie dla rejestrowania formantów ActiveX.

Należy zarejestrować MFCx0.DLL.

Zobacz też

Koncepcje

Formanty ActiveX MFC