Condividi tramite


Controlli ActiveX MFC: Distribuzione dei controlli ActiveX

Questo articolo vengono illustrate diverse problematiche correlate a ridistribuire i controlli ActiveX:

  • Versioni del controllo Unicode o ANSI

  • Installare i controlli ActiveX e le DLL ridistribuibili

  • Registrare i controlli

    [!NOTA]

    Per ulteriori informazioni sulla ridistribuzione dei controlli ActiveX, vedere Ridistribuzione dei controlli.

Versioni del controllo Unicode o ANSI

È necessario decidere se fornire un ANSI o una versione Unicode del controllo, oppure entrambe le.Questa decisione è basata sui fattori di portabilità inerenti ANSI e ai set di caratteri Unicode.

I controlli ANSI, che funzionano con tutti i sistemi operativi Win32, consentono la portabilità massima tra i vari sistemi operativi Win32.Funzionamento dei controlli Unicode solo in Windows NT versione 3,51 o successiva), ma non in Windows 95 o Windows 98.Se la portabilità è la problematica principale, fornire i controlli ANSI.Se i controlli funzioneranno solo in Windows NT, è possibile fornire i controlli Unicode.È inoltre possibile prevedere e effettuare la domanda installare la versione appropriata del sistema operativo dell'utente.

Installare i controlli ActiveX e le DLL ridistribuibili

Il programma di installazione fornito con i controlli ActiveX necessario creare una sottodirectory speciale della directory di Windows e installare i file di .OCX dei comandi.

[!NOTA]

Utilizzare le finestre GetWindowsDirectory API nel programma di installazione per ottenere il nome della directory di Windows.È possibile derivare il nome della sottodirectory dal nome della società o prodotto.

Il programma di installazione necessario installare i file DLL ridistribuibili necessari nella directory di sistema di Windows.Se una delle DLL sono già presenti nel computer dell'utente, il programma di installazione deve confrontare le versioni con le versioni che si installa.Reinstallare un file solo se il relativo numero di versione di è superiore al file già installato.

Poiché i controlli ActiveX possono essere utilizzati solo nelle applicazioni del contenitore OLE, non è necessario distribuire il set completo di DLL OLE con i controlli.È possibile presupporre che l'applicazione contenitore (o il sistema operativo stesso) dispone delle DLL standard OLE installati.

Registrare i controlli

Prima che un controllo sia possibile utilizzare, le voci appropriate devono essere creati per il database di registrazione di windows.Alcuni contenitori di controlli ActiveX forniscono una voce di menu degli utenti ai nuovi controlli del registro, ma questa funzionalità potrebbe non essere disponibile in tutti i contenitori.Di conseguenza, è possibile utilizzare il programma di installazione per registrare i controlli quando vengono installati.

Se si preferisce, è possibile scrivere il programma di installazione per registrare il controllo direttamente anziché.

Utilizzare LoadLibrary API Windows per caricare la DLL del controllo.Successivamente, utilizzare GetProcAddress ottenere l'indirizzo della funzione di “DllRegisterServer„.Infine, chiamare la funzione di DllRegisterServer .Nell'esempio di codice seguente viene illustrato un metodo possibile, dove hLib memorizzare l'handle di libreria di controlli e gli archivi di lpDllEntryPointl'indirizzo della funzione di “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

Il vantaggio di registrare il controllo direttamente è che non è necessario richiamare e caricare un processo separato (cioé,utilizzo di REGSVR32), riducendo la fase di installazione.Inoltre, poiché la registrazione è un processo interno, il programma di installazione può gestire meglio gli errori e le situazioni non intenzionali di un processo esterno possibile.

[!NOTA]

Prima che il programma di installazione installare un controllo ActiveX, deve chiamare OleInitialize.Quando il programma di installazione, chiamare OleUnitialize.Questo assicura che le DLL di sistema OLE siano nello stato corretto per registrare un controllo ActiveX.

È necessario registrare MFCx0.DLL.

Vedere anche

Concetti

Controlli ActiveX MFC