Je bent nu offline; er wordt gewacht tot er weer een internetverbinding is

Afhankelijke DLL's in Internet Explorer met een INF-bestand downloaden

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

De Engelstalige versie van dit artikel is de volgende:165075
Samenvatting
Is het vaak nodig samen met een ActiveX-afhankelijke DLL's downloadenBesturings element. MFC en Visual Basic-besturingselementen hebben deze eis. In dit artikelwordt uitgelegd dat u dit kunt doen op drie manieren.
Meer informatie
Er zijn drie manieren om afhankelijke DLL's zijn in de download voor eenbesturings element. De eerste manier is de DLL(s) opgenomen in het CAB-bestand voor debepalen samen met de OCX- en inf-bestanden. Het nadeel hiervan is dat deDLL-bestand worden gedownload wanneer die het besturings element wordt gedownload. In sommige gevallenDit is relevant. De volgende manier is de afhankelijke DLL(s) in een pakket eenafzonderlijke CAB-bestand en die in het INF-bestand voor het besturings element verwijzen. Hetderde manier ook het dll-bestand in een CAB-bestand voor afzonderlijke pakketten, maar wordt het CAB-bestandals bedoeld in het INF-bestand van het besturings element met een haakje. Met behulp van een haak. kan deproces voor het uitvoeren van een INF-bestand of het EXE-bestand van de afhankelijke downloadenCAB-bestand.

Een afhankelijkheid toevoegen voor een OCX (Simpdll.dll in dit voorbeeld), een sectievergelijkbaar met de sectie voor het besturings element wordt toegevoegd aan de sectie [AddCode]het INF-bestand:
   [Add.Code]   TestDw.ocx=TestDw.ocx   simpdll.dll=simpdll.dll				
Vervolgens wordt een punt toegevoegd aan het INF-bestand waarmee de installatie van deDLL-BESTAND:
   [simpdll.dll]   FileVersion=1,0,0,1   file-win32-x86=thiscab				
Dit is de eerste manier vermeld moeten de afhankelijkheid van een DLL-bestand downloaden.

Het dll-bestand in een aparte CAB-bestand opnemen, die nodig isWijzig de locatie van "thiscab" in de URL waarmee de afhankelijke CAB-bestandzal worden geplaatst:
File-Win32-x86=http://www.contoso.com/Controls/dependent.cab
In dit geval bevat Simpdll.cab alleen simpdll.dll.

Meerdere dll-bestanden kunnen worden toegevoegd aan de inf- en cab-bestanden hierboven indien nodig.

De derde manier om afhankelijke DLL's pakket is om te verwijzen naar de afhankelijke DLL CAB-bestand met behulp van een haak. Met deze techniek een INF-bestand of EXE bestand in deafhankelijke CAB-bestand kan worden uitgevoerd op downloaden.

De volgende sectie van INF-bestand bepaalt de afhankelijke DLL downloadenvoor MFC-besturingselementen:
   [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				
In dit geval zijn de MFC DLL's verpakt in een zelfuitpakkend exe-bestandwaar bevindt zich in het CAB-bestand (mfc42.cab). Echter, extra makenzelf-uitpakkende exe-bestanden zijn momenteel niet beschikbaar bij Microsoft.Daarom moet u afhankelijke DLL's inpakken met een INF-bestandof verwijzen naar het INF-bestand in de installatie haak:
   [yourinstaller]   file-win32-x86=http://example.microsoft.com/simpdll.cab   InfFile=your.inf				
Of moet u een EXE-bestand met behulp van derden extraheren zelf bouwenhulp programma's.

Ter illustratie is het volgende het INF-bestand gebruikt om de afhankelijke installerenMFC-dll's. U kunt dit zelf DLL's installeren op dezelfde manier wijzigendat de MFC-dll's zijn geïnstalleerd.
   ; ========================= 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 ======================				
Een DLL-bestand moet worden weer gegeven in het gedeelte .register als deze uitvoer eenDllRegisterServer-functie. Dit kan worden bepaald door het onderzoeken van het dll-bestandmet de Visual C compiler Dumpbin.exe programma. U kunt ook uitvoerenRegsvr32 op de DLL, wordt geprobeerd de DLL te registreren. Regsvr32 wordt geladenhet dll-bestand, verifieert dat DllRegisterServer correct wordt geëxporteerd door te bellenGetProcAddress () op de DLLRegisterServer-functie. Als dit lukt, deDllRegisterServer-functie wordt uitgevoerd en vervolgens wordt genoemd.

Wees voorzichtig, echter dat Regsvr32 waarop het dll-bestand mogelijk ongewensteneveneffecten. Wanneer DllRegisterServer wordt aangeroepen, wordt het juisteregistervermeldingen die verwijzen naar de locatie van het dll-bestand op de computer. Bijvoorbeeld:Typ het volgende in een MS-DOS-prompt, kunnen voor test doeleinden veroorzakenproblemen:
   copy mfc42.dll C:\Test   run "D:\msdev\bin\REGSVR32.EXE C:\Test\mfc42.dll"   delete mfc42.dll				
De volgende keer dat het systeem probeert te zoeken naar Mfc42. dll, wordt opgezocht deregister, constateert dat het bestand is toegewezen aan C:\Test\Mfc42.dll, en nietEr vinden. Regsvr32 uitgevoerd op een bestand dat al is geïnstalleerd op eenmachine veroorzaakt geen problemen.

Een DLL-bestand met een haak en een EXE uitpakken zelf installeren is handig voor hetvolgende reden: als een DLL-bestand dat moet worden bijgewerkt nog wordt geladengeheugen, het downloaden mislukt. Dit is een bekend probleem, isopgelost in Internet Explorer versie 4. 0. Internet Explorer 4. 0 wordt voorgesteld.een reboot en laden tijdens het opstarten de nieuwe DLL.
Referenties
Zie de volgende artikelen in de Microsoft Knowledge Base voor meer informatie:
167158Het pakket MFC-besturingselementen voor gebruik via het Internet
167597FileVersion en # Version opgeven voor het downloaden van onderdelen

Zie de volgende Webcast voor meer informatie:

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 165075 - Laatst bijgewerkt: 09/28/2011 05:41:00 - Revisie: 4.0

Windows Internet Explorer 8, Windows Internet Explorer 8 on Windows Server

  • kbcode kbdownload kbfaq kbhowto kbmt KB165075 KbMtnl
Feedback
y>body>y>