MFC – ovládací prvky ActiveX: Distribuce ovládacích prvků ActiveX
Tento článek popisuje několik problémů souvisejících s Redistribuce ovládacích prvků ActiveX:
Verze ovládacího prvku ve formátu Unicode nebo ANSI
Instalace ovládacích prvků ActiveX a soubory DLL Redistributable
Registraci ovládacích prvků
[!POZNÁMKA]
Další informace o Redistribuce ovládacích prvků ActiveX naleznete v tématu Redistribuce ovládacích prvků.
Verze ovládacího prvku ve formátu Unicode nebo ANSI
Musíte se rozhodnout, zda k dodání ANSI nebo Unicode verze ovládacího prvku, nebo obojí.Toto rozhodnutí je založena na přenositelnost faktory obsažené v znakové sady ANSI a Unicode.
ANSI ovládací prvky, které fungují ve všech operačních systémech Win32, umožňují maximální přenositelnost mezi různými operačními systémy Win32.Prvky Unicode fungovat pouze systému Windows NT (verze 3.51 nebo vyšší), ale není v systému Windows 95 nebo Windows 98.Pokud vám jde především, řídí loď ANSI přenositelnost.Ovládací prvky se spustí pouze v systému Windows NT, dodávat ovládací prvky ve formátu Unicode.Také můžete i dodání a mít aplikaci nainstalovat verzi, která je nejvhodnější pro uživatele operačního systému.
Instalace ovládacích prvků ActiveX a soubory DLL Redistributable
Instalační program s ovládací prvky ActiveX musí vytvořit zvláštní podadresář adresáře Windows a nainstalovat ovládací prvky.OCX soubory.
[!POZNÁMKA]
Pomocí systému Windows GetWindowsDirectory rozhraní API instalační program získat název adresáře systému Windows.Chcete název podadresáře jsou odvozeny od názvu společnosti nebo produktu.
Instalačního programu nainstalujte potřebné redistribuovatelné soubory DLL v adresáři systému Windows.Je-li splněna některá z knihoven DLL, která již v počítači uživatele, instalační program by měl porovnat jejich verze s verzí, kterou instalujete.Přeinstalujte soubor pouze v případě, že jeho číslo verze je vyšší než soubor již nainstalována.
Vzhledem k tomu, že ovládací prvky ActiveX lze použít pouze v aplikace kontejneru OLE, není nutné distribuovat celou sadu knihoven OLE DLL s ovládacími prvky.Lze předpokládat, že aplikace obsahující (nebo samotného operačního systému) má standardní OLE DLL nainstalována.
Registraci ovládacích prvků
Před použitím ovládacího prvku, musíte pro něj vytvořena odpovídající položky v registrační databázi systému Windows.Položka nabídky pro uživatele k registraci nové ovládací prvky poskytují některé kontejnery ovládacího prvku ActiveX, ale tato funkce nemusí být k dispozici ve všech kontejnerech.Proto je vhodné instalační program zaregistrovat ovládací prvky při instalaci.
Pokud dáváte přednost, můžete napsat váš instalační program zaregistrovat ovládací prvek přímo místo.
Použití LoadLibrary rozhraní API systému Windows načíst knihovnu DLL ovládacího prvku.V dalším kroku pomocí GetProcAddress při získávání adresy funkce "DllRegisterServer".Nakonec zavolejte DllRegisterServer funkce.Následující příklad kódu ukazuje jeden možný způsob, kde hLib uloží popisovač knihovny ovládacích prvků a lpDllEntryPoint ukládá adresy funkce "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
Výhodou registrace ovládacího prvku přímo je, že nepotřebujete pro vyvolání a načíst samostatný proces (jmenovitě REGSVR32), zkrácení doby instalace.Navíc vzhledem k tomu, že je vnitřní proces registrace, instalační program může zpracovávat chyby a nepředvídaných situacích lépe než externí proces lze.
[!POZNÁMKA]
Předtím, než instalační program nainstaluje ovládací prvek ActiveX, by měl zavolat provedení.Po dokončení instalačního programu volat OleUnitialize.Tím je zajištěno, že jsou knihovny DLL systému OLE do řádného stavu registrace ovládacího prvku ActiveX.
Byste měli zaregistrovat knihovny MFCx0.DLL.