Jak stáhnout závislé soubory DLL v aplikaci Internet Explorer s soubor .inf soubor

Překlady článku Překlady článku
ID článku: 165075 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Často je nutné stáhnout závislé knihovny DLL spolu s ActiveX Ovládací prvek. Ovládací prvky MFC a Visual Basic mají tento požadavek. V tomto článku vysvětlují třemi způsoby, můžete to provést.

Další informace

Existují tři způsoby zahrnout závislé knihovny DLL pro stažení ovládací prvek. První způsob je zahrnout soubor CAB DLL(s) řídit OCX a INF a soubory. Nevýhodou tohoto je, že Knihovna DLL budou staženy při každém stažení ovládacího prvku. V některých případech je to vhodné. Dalším způsobem je závislé DLL(s) v balíčku Oddělit soubor CAB a který naleznete v souboru INF pro ovládací prvek. Na třetí způsob balíčky také knihovna DLL v samostatném souboru CAB, ale je soubor CAB uvedené v souboru INF ovládacího prvku s háčkem. Umožňuje hákem proces spuštění souboru INF nebo EXE, obsažené v dependent stahování Soubor CAB.

K přidání závislosti pro soubor OCX (Simpdll.dll v tomto příkladu), oddíl podobné části ovládacího prvku je přidán do části [AddCode] soubor INF:
   [Add.Code]
   TestDw.ocx=TestDw.ocx
   simpdll.dll=simpdll.dll
				
Oddíl je potom přidán do souboru INF, řízení instalace KNIHOVNA DLL:
   [simpdll.dll]
   FileVersion=1,0,0,1
   file-win32-x86=thiscab
				
Tímto způsobem první uvedené zahrnout závislou knihovnu DLL ke stažení.

Chcete-li zahrnout knihovnu DLL v samostatném souboru CAB, stačí je Změna umístění z "thiscab" na adresu URL, kterou dependent kabiny bude umístěn:
File-Win32-x86=http://www.contoso.com/Controls/Dependent.cab
V tomto případě Simpdll.cab obsahuje pouze simpdll.dll.

Více knihoven DLL lze přidat soubory INF a CAB výše, v případě potřeby.

Třetí způsob balíček závislé knihovny DLL je odkazovat na soubor CAB závislá knihovna DLL hákem. Při této technice INF nebo EXE souboru v závislé kabiny mohou být provedeny na stažení.

V následující části ze souboru INF řídí stahování závislé knihovny DLL pro ovládací prvky MFC:
   [Add.Code]
   ...
   msvcrt.dll=msvcrt.dll
   mfc42.dll=mfc42.dll
   olepro32.dll=olepro32.dll

   [msvcrt.dll]
   FileVersion=4,20,0,6164
   hook=mfc42installer

   ...

   [mfc42installer]
   file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
   run=%EXTRACT_DIR%\mfc42.exe
				
V tomto případě jsou knihovny DLL MFC zabalen do samorozbalujícího souboru EXE které jsou obsaženy v souboru CAB (mfc42.cab). Aby však nástroje samorozbalovací exe soubory nejsou aktuálně k dispozici od společnosti Microsoft. Proto je potřeba buď ke sbalení závislé knihovny DLL pomocí souboru INF nebo odkaz na soubor INF v háku instalace:
   [yourinstaller]
   file-win32-x86=http://example.microsoft.com/simpdll.cab
   InfFile=your.inf
				
Nebo bude nutné vytvořit samostatně extrahování souboru EXE pomocí třetí strany nástroje.

Pro ilustraci, je použit k instalaci dependent souboru INF MFC knihovny DLL. Tato instalace vlastních knihoven DLL stejným způsobem můžete upravit že jsou nainstalovány soubory DLL MFC.
   ; ========================= Mfc42.inf =========================

   ; This file will control the download of the MFC 4.2 DLLs

   [version]
   ; version signature (same for both NT and Win95) do not remove
   signature="$CHICAGO$"
   AdvancedINF=2.0

   [SourceDisksNames]
   ; This section specifies that all sources are in the "default"
   ; location.
   1="default",,1

   [DefaultInstall]
   ; Default section to process and copy all files under the section
   ; mfcdllsx.files and Register DLLs under the section mfcdllsx.register.
   CopyFiles=mfcdllsx.files
   RegisterOCXs=mfcdllsx.register

   [DestinationDirs]
   ; Destination Directories for CopyFiles Sections.
   ; 11 indicates LDID_SYS - system directory
   mfcdllsx.files=11

   [mfcdllsx.files]
   ; ,,,32 - Suppress version conflict dialog and don't overwrite newer
   ; DLLs
   msvcrt.dll,,,32
   mfc42.dll,,,32
   olepro32.dll,,,32

   [mfcdllsx.register]
   ; msvcrt.dll is not self registering
   %11%\mfc42.dll
   %11%\olepro32.dll

   ; ====================== Mfc42.inf ======================
				
Knihovna DLL musí být uvedeny v části .register, pokud jej exportuje Funkce DllRegisterServer. To může být určena zkoumání knihovny DLL Kompilátor Visual C Dumpbin.exe nástroj. Můžete také spustit Regsvr32 na knihovnu DLL, který se pokusí zaregistrovat knihovnu DLL. Načte regsvr32 Knihovna DLL, ověří, že funkce DllRegisterServer je řádně vyvezeno voláním Volání GetProcAddress() funkce DLLRegisterServer. Pokud se funkci DllRegisterServer se exportuje a potom se nazývá.

Pozor však, že Regsvr32 systémem DLL může mít nežádoucí vedlejší účinky. Když je zavolána funkce DllRegisterServer, provede příslušná položky registru odkazující na umístění knihovny DLL v počítači. Například zadáním následujícího řetězce do příkazový řádek MS-DOS, pro testovací účely může způsobit potíže:
   copy mfc42.dll C:\Test
   run "D:\msdev\bin\REGSVR32.EXE C:\Test\mfc42.dll"
   delete mfc42.dll
				
Systém se pokusí vyhledat Mfc42.dll, dalším vyhledá registr, zjistí, že soubor je mapována na C:\Test\Mfc42.dll a není najdete je tam. Systémem Regsvr32 na soubor, který je nainstalován počítače nezpůsobí problémy.

Instalace knihovny DLL s háčkem a self, extrahování souboru EXE je užitečné pro následující důvod: Pokud je knihovna DLL, která musí být upgradován již načten v paměť, stahování se nezdaří. Jedná se o známý problém, který byl stanovena v aplikaci Internet Explorer verze 4.0. Navrhne aplikace Internet Explorer 4.0 restartování počítače a načíst nové knihovny DLL během restartování počítače.

Odkazy

Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
167158 Jak ovládací prvky MFC balíček pro použití v síti Internet
167597 Určení verze souboru Msnmsgr.exe a pole # Version pro stahování součástí

Další informace naleznete na následující webové vysílání:
Jak stáhnout součást Internet práce?

Vlastnosti

ID článku: 165075 - Poslední aktualizace: 28. září 2011 - Revize: 4.0
Informace v tomto článku jsou určeny pro produkt:
  • Windows Internet Explorer 8
  • Windows Internet Explorer 8 on Windows Server
Klíčová slova: 
kbcode kbdownload kbfaq kbhowto kbmt KB165075 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:165075

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com