Esempio di attributi LABRADOR: implementazione di un server privo di interfaccia utente
Aggiornamento: novembre 2007
Nell'esempio di attributi LABRADOR viene illustrato come utilizzare ATL per implementare un server EXE senza alcuna interfaccia utente. Il server consente la creazione di un oggetto in grado di supportare due interfacce personalizzate, definite in Labrador.idl.
Nota sulla sicurezza: |
---|
Questo esempio di codice viene fornito solo a scopo dimostrativo e non deve essere utilizzato in applicazioni o siti Web, poiché potrebbe non implementare le tecniche migliori a livello di sicurezza. Microsoft esclude ogni responsabilità per danni diretti o indiretti derivanti dall'utilizzo dell'esempio di codice per scopi diversi da quelli previsti. |
Per ottenere gli esempi e le istruzioni per l'installazione:
In Visual Studio scegliere Esempi dal menu ?.
Per ulteriori informazioni, vedere Individuazione dei file di esempio.
La versione più recente e l'elenco completo degli esempi sono disponibili in linea alla pagina Visual Studio 2008 Samples.
È anche possibile trovare gli esempi sul disco rigido del computer. Per impostazione predefinita, gli esempi e il file Leggimi vengono copiati in una cartella nel percorso \Programmi\Visual Studio 9.0\Samples\. Per le versioni Express di Visual Studio, tutti gli esempi sono disponibili in linea.
Generazione ed esecuzione dell'esempio
Nell'esempio vengono utilizzati tre componenti: il server, la DLL di marshalling e il driver.
Per generare e registrare i componenti
Aprire il file di soluzione Labrador.sln.
Scegliere Genera soluzione dal menu Genera.
Verranno generati e registrati il server, la DLL di marshalling e il driver.
Per eseguire il driver
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto labdriv e scegliere Imposta come progetto di avvio.
Scegliere Avvia senza eseguire debug dal menu Debug.
Mediante il driver verrà creato un oggetto che sarà utilizzato in alcune chiamate e quindi rilasciato.
Attributi
Nell'esempio vengono utilizzati i seguenti attributi:
aggregatable, coclass, default, emitidl, helpstring, in, module, object, out, progid, string, threading, uuid, version, vi_progid
Parole chiave
Nell'esempio vengono utilizzate le parole chiave seguenti:
_CrtDumpMemoryLeaks; _tcsicmp; _tcstok; _tprintf; _vstprintf; ATLASSERT; BEGIN_COM_MAP; BEGIN_OBJECT_MAP; CComModule::Init; CComModule::RegisterClassObjects; CComModule::RevokeClassObjects; CComModule::Unlock; CComModule::UnregisterServer; CComObjectRoot; CoCreateInstance; COM_INTERFACE_ENTRY; CoUninitialize; DECLARE_NOT_AGGREGATABLE; DECLARE_REGISTRY; DispatchMessage; END_OBJECT_MAP; GetCurrentThreadId; GetMessage; OBJECT_ENTRY; OutputDebugString; PostThreadMessage; Trace; va_end; va_list; va_start; wcscpy_s
Nota: |
---|
Alcuni esempi, tra cui il presente, non sono stati cambiati per riflettere le modifiche apportate alle procedure guidate, alle librerie e al compilatore di Visual C++, tuttavia forniscono comunque le istruzioni per completare l'attività desiderata. |