Ako sťahovať závislé DLL v prehliadači Internet Explorer sa súbor typu .inf súbor

Preklady článku Preklady článku
ID článku: 165075 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

SUHRN

Často je potrebné stiahnuť závislé DLL spolu s prvok ActiveX Kontrola. Ovládacie prvky MFC a Visual Basic mať táto požiadavka. Tento článok vysvetlí tromi spôsobmi, aby ste to urobili.

DALSIE INFORMACIE

Existujú tri spôsoby zahrnúť závislé DLL súbory na prevzatie pre kontrola. Prvý spôsob je zahrnúť DLL(s) v súbore CAB kontrolu spolu s OCX a INF súbory. Nevýhodou tohto je, že DLL sa prevezmú kedykoľvek prevzali kontrolu. V niektorých prípadoch je to vhodné. Ďalším spôsobom je balík závislé DLL(s) v samostatné súboru CAB a že označovať v súbore INF pre kontrolu. V tretí spôsob, ako aj balíkov DLL v samostatnom súbore CAB, ale je súbor CAB podľa súbor INF ovládacieho prvku s háčik. Pomocou háku umožňuje proces preberania spustiť súbor INF alebo EXE obsiahnuté v závislých Súbor CAB.

Pridanie závislosť pre súbor OCX (Simpdll.dll v tomto príklade), sekcia podobné do sekcie pre kontrolu sa pridá do sekcie [AddCode] súbor INF:
   [Add.Code]
   TestDw.ocx=TestDw.ocx
   simpdll.dll=simpdll.dll
				
Sekcie sa potom pridá k súboru INF na kontrolu inštalácia DLL:
   [simpdll.dll]
   FileVersion=1,0,0,1
   file-win32-x86=thiscab
				
Toto je prvá cesta uvedené zahrnúť DLL závislosť na prevzatie.

Zahrnúť DLL samostatný súbor CAB, všetko je to potrebné, je zmeniť umiestnenie z "thiscab" na adresu URL, na ktorej závisí od kabíny bude umiestnené:
file-Win32-x86=http://www.contoso.com/Controls/Dependent.cab
V tomto prípade Simpdll.cab obsahuje len simpdll.dll.

Viacnásobné DLL sa môžu doplniť do súborov INF a kabíny nad, ak je to potrebné.

Tretí spôsob, ako balík závislé DLL je označovať závislá knižnica DLL súbor CAB pomocou háku. Touto technikou INF alebo EXE súbor v závislé kabíny môžu byť vykonané na prevzatie.

Nasledujúca časť zo súboru .inf ovláda závislá knižnica DLL stiahnutie pre ovládače 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 prípade sú MFC knižnice DLL zabalené samorozbaľovací súbor .exe, ktorý je obsiahnutý v súbore .cab (mfc42.cab). Avšak, nástrojov, aby samorozbaľovací .exe súbory nie sú v súčasnosti k dispozícii od spoločnosti Microsoft. Preto bude potrebné buď na balenie závislé DLL so súborom typu .inf alebo odkaz na súbor .inf v háku inštalácie:
   [yourinstaller]
   file-win32-x86=http://example.microsoft.com/simpdll.cab
   InfFile=your.inf
				
Alebo budete musieť vybudovať vlastné extrakcie EXE s·bore pomocou tretej strany nástroje.

Na ilustráciu, toto je súbor .inf použitého na inštaláciu závislých MFC knižnice DLL. Môžete upraviť inštalujte vlastné DLL rovnakým spôsobom že sú namontované MFC knižnice DLL.
   ; ========================= 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 ======================
				
Knižnice DLL musí byť uvedené v časti .register, ak sa vyváža Funkcia DllRegisterServer. To môže byť stanoví skúmaním DLL s Visual C kompilátor Dumpbin.exe utility. Môžete tiež spustiť Regsvr32 na DLL, ktorá sa pokúša zaregistrovať knižnicu DLL. Regsvr32 bremien DLL, overí, že DllRegisterServer riadne vyvezený volaním Funkcia GetProcAddress() na funkciu DLLRegisterServer. Ak sa to podarí, funkcia DllRegisterServer vyváža a potom nazýva.

Pozor však, že beží Regsvr32 na knižnicu DLL môže mať nežiadúcich vedľajšie účinky. Keď sa nazýva DllRegisterServer, umožňuje vhodné položky databázy Registry smerovali do knižnice DLL umiestnenia v počítači. Napríklad, keď zadáte v príkazovom, na účely testu, môže spôsobiť problémy:
   copy mfc42.dll C:\Test
   run "D:\msdev\bin\REGSVR32.EXE C:\Test\mfc42.dll"
   delete mfc42.dll
				
Nabudúce sa systém pokúša hľadať knižnicu Mfc42.dll, vyzerá to databázy Registry, zistí, že súbor je priradená k C:\Test\Mfc42.dll a nemá nájsť tam. Regsvr32 napájaný súbor, ktorý už je nainštalovaný na stroj nespôsobuje problémy.

Inštalácia knižnice DLL so háčika a samostatná extrakcie EXE je užitočné pre po dôvod: Ak knižnica DLL, ktorú treba inovovať je už načítaný v pamäť, download zlyhajú. Toto je známy problém, ktorý bol stanovené v programe Internet Explorer verzie 4.0. Internet Explorer 4.0 navrhne Restart a zaťaženie novej knižnice DLL počas reštartu.

ODKAZY

Ďalšie informácie nájdete v nasledujúcich článkoch databázy Microsoft Knowledge Base:
167158 Ako balík Ovládače MFC pre použitie na internete
167597 Zadávanie FileVersion a #Version pre komponent Download

Ďalšie informácie nájdete v nasledujúcich Webcast:
Ako súčasť Internet stiahnuť prácu?

Vlastnosti

ID článku: 165075 - Posledná kontrola: 17. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Windows Internet Explorer 8
  • Windows Internet Explorer 8 on Windows Server
Kľúčové slová: 
kbcode kbdownload kbFAQ kbhowto kbmt KB165075 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:165075

Odošlite odozvu

 

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