Ejemplo de atributos LABRADOR: implementa un servidor sin interfaz de usuario

Actualización: noviembre 2007

El ejemplo de atributos LABRADOR muestra cómo utilizar ATL para implementar un servidor EXE sin interfaz de usuario. El servidor permite la creación de un objeto que admita dos interfaces personalizadas, definidas en Labrador.idl.

Nota de seguridad:

Este código de ejemplo se proporciona para ilustrar un concepto y no debe utilizarse en aplicaciones o sitios Web, ya que quizás no ilustre las prácticas de codificación más seguras. Microsoft no asume ninguna responsabilidad por daños incidentales o consecuentes en caso de que el código de ejemplo se utilice para propósitos distintos de aquellos para los que se concibió.

Para obtener ejemplos e instrucciones para su instalación:

  • En el menú Ayuda de Visual Studio, haga clic en Ejemplos.

    Para obtener más información, vea Localizar archivos de ejemplo.

  • La lista de ejemplos completa con la versión más reciente está disponible en línea en la página Visual Studio 2008 Samples.

  • También encontrará ejemplos en el disco duro de su equipo. De manera predeterminada, los ejemplos y el archivo Léame se copian en una carpeta bajo \Archivos de programa\Visual Studio 9.0\Samples\. Para las versiones Express de Visual Studio, todos los ejemplos están en línea.

Generar y ejecutar el ejemplo

Este ejemplo utiliza tres componentes: el servidor, la DLL para cálculo de referencias (marshaling) y el controlador.

Para generar y registrar los componentes

  1. Abra el archivo de solución Labrador.sln.

  2. En el menú Generar, haga clic en Generar solución.

    Se generarán y registrarán el servidor, la DLL para cálculo de referencias (marshaling) y el controlador.

Para ejecutar el controlador

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto labdriv y, a continuación, seleccione Establecer como proyecto de inicio.

  2. En el menú Depurar, haga clic en Iniciar sin depurar.

    El controlador creará un objeto, realizará unas cuantas llamadas en él y después lo liberará.

Atributos

En este ejemplo se utilizan los atributos siguientes:

aggregatable, coclass, default, emitidl, helpstring, in, module, object, out, progid, string, threading, uuid, version, vi_progid

Palabras clave

En este ejemplo se utilizan las siguientes palabras clave:

_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:

Algunos ejemplos, como éste, no se han modificado para reflejar los cambios en los asistentes, las bibliotecas y el compilador de Visual C++, pero, aun así, muestran cómo realizar la tarea deseada.

Vea también

Otros recursos

Ejemplos de atributos ATL