How to: download di DLL dipendenti in Internet Explorer con un file inf

Traduzione articoli Traduzione articoli
Identificativo articolo: 165075 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

Spesso Ŕ necessario scaricare DLL dipendenti con un controllo ActiveX. Controlli MFC e Visual Basic esiste tale requisito. In questo articolo verrÓ descritti tre modi per eseguire questa operazione.

Informazioni

Esistono tre modi per includere DLL dipendenti nel download di un controllo. Il primo modo consiste la DLL nel file CAB per il controllo insieme con i file OCX e INF. Lo svantaggio di questo Ŕ che la DLL verrÓ scaricata ogni volta che il controllo viene scaricato. In alcuni casi, questo Ŕ opportuno. Il successivo consiste per le DLL dipendenti in un file CAB separato del pacchetto e fare riferimento a quella nel file INF per il controllo. Il terzo metodo pacchetti anche la DLL in un file CAB separato, ma il file CAB Ŕ indicato di file INF del controllo con un hook. Utilizzo di un hook consente il processo di download eseguire un file INF o EXE contenuto nel file CAB dipendente.

Per aggiungere una dipendenza per OCX (Simpdll.dll in questo esempio), una sezione simile alla sezione per il controllo viene aggiunto alla sezione [AddCode] del file INF:
   [Add.Code]
   TestDw.ocx=TestDw.ocx
   simpdll.dll=simpdll.dll
				
sezione viene quindi aggiunto al file INF per controllare l'installazione della DLL:
   [simpdll.dll]
   FileVersion=1,0,0,1
   file-win32-x86=thiscab
				
Ŕ la prima modalitÓ indicata per includere una dipendenza DLL in un download.

Per includere la DLL in un file CAB separato, che Ŕ necessario consiste nel modificare il percorso da "thiscab" all'URL in cui si troverÓ il file CAB dipendente:
file-Win32-x86=http://www.contoso.com/Controls/Dependent.cab
In questo caso, Simpdll.cab contiene solo simpdll.dll.

╚ possibile aggiungere pi¨ DLL dei file INF e CAB sopra, se necessario.

Il terzo metodo per assemblare le DLL dipendenti Ŕ fare riferimento file CAB della DLL dipendenti utilizzando un hook. Con questa tecnica, un file di INF o EXE nel file CAB dipendente pu˛ essere eseguito in fase di download.

La sezione seguente da un file inf controlla il download DLL dipendente per controlli 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
				
in questo caso, in cui le DLL MFC vengono contenute in un file exe autoestraente, contenuta nel file CAB (mfc42.cab). Tuttavia, gli strumenti per rendere i file exe autoestraente non sono attualmente disponibili da Microsoft. Di conseguenza, sarÓ necessario DLL dipendenti con un file inf del pacchetto o il file inf nell'hook di installazione di riferimento:
   [yourinstaller]
   file-win32-x86=http://example.microsoft.com/simpdll.cab
   InfFile=your.inf
				
OR, Ŕ necessario creare un self l'estrazione dei file EXE utilizzando strumenti di terze parti.

Per illustrare, quanto Ŕ il file inf che consente di installare le DLL MFC dipendenti. ╚ possibile modificare questa opzione per installare la propria DLL nello stesso modo che siano installate le 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 ======================
				
A DLL deve essere elencati nella sezione .Register se Esporta una funzione DllRegisterServer. ╚ possibile determinare questo esaminando la DLL con utilitÓ Dumpbin.exe del compilatore di Visual C. ╚ inoltre possibile eseguire Regsvr32 sulla DLL, che tenta di registrare la DLL. Regsvr32 carica la DLL, verifica che DllRegisterServer viene esportato correttamente chiamando la funzione DLLRegisterServer GetProcAddress(). Se l'operazione riesce, DllRegisterServer di tipo la funzione viene esportata e viene quindi chiamato.

Tenere presente che alimentato Regsvr32 la DLL potrebbe avere effetti collaterali indesiderati. Quando viene chiamato DllRegisterServer, rende voci del Registro di sistema appropriata alla posizione della DLL nel computer. Ad esempio, digitando quanto segue in un prompt MS-DOS, per scopi di test, Ŕ causa problemi:
   copy mfc42.dll C:\Test
   run "D:\msdev\bin\REGSVR32.EXE C:\Test\mfc42.dll"
   delete mfc42.dll
				
la volta successiva che il sistema tenta la ricerca di Mfc42.dll, Cerca il Registro di sistema, rileva che il file viene mappato a C:\Test\Mfc42.dll e non viene trovato Ŕ. Esecuzione Regsvr32 in un file che Ŕ giÓ installato in un computer non causa problemi.

Installazione di una DLL con una funzione hook e un automatica estrazione EXE Ŕ utile per il seguente motivo: se una DLL che Ŕ necessario eseguire l'aggiornamento Ŕ giÓ caricata in memoria, il download avrÓ esito negativo. Questo Ŕ un problema noto, in modo che Ŕ stato risolto in Internet Explorer versione 4.0. Internet Explorer 4.0 verrÓ suggerito un riavvio e caricare la DLL nuova durante il riavvio.

Riferimenti

Per ulteriori informazioni, vedere i seguenti articoli della Microsoft Knowledge Base riportato di seguito:
167158Come pacchetto MFC di controlli per l'utilizzo su Internet
167597Specificando FileVersion e # Version per download dei componenti

Per ulteriori informazioni, vedere il seguente Webcast:
How Does Internet Component Download Work?

ProprietÓ

Identificativo articolo: 165075 - Ultima modifica: giovedý 21 dicembre 2006 - Revisione: 2.5
Le informazioni in questo articolo si applicano a:
  • Microsoft Internet Explorer 3.0
  • Microsoft Internet Explorer 3.01
  • Microsoft Internet Explorer 3.02
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
  • Windows Internet Explorer 8
  • Windows Internet Explorer 8 on Windows Server
Chiavi:á
kbmt kbcode kbdownload kbfaq kbhowto KB165075 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 165075
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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