Importar a una aplicación mediante __declspec(dllimport)

Se dice que un programa que utiliza símbolos públicos definidos por un archivo DLL importa dichos símbolos. Cuando cree archivos de encabezado para aplicaciones que utilizan los archivos DLL para generar, utilice __declspec(dllimport) en las declaraciones de los símbolos públicos. La palabra clave __declspec(dllimport) funciona tanto si exporta con archivos .def como con la palabra clave __declspec(dllexport).

Para hacer que el código sea más legible, defina una macro para __declspec(dllimport) y después utilice la macro para declarar cada símbolo importado:

#define DllImport   __declspec( dllimport )

DllImport int  j;
DllImport void func();

El uso de __declspec(dllimport) es opcional en declaraciones de función, pero el compilador produce un código más eficaz si utiliza esta palabra clave. Sin embargo, debe utilizar __declspec(dllimport) para que el ejecutable importador pueda tener acceso a los símbolos y objetos de datos públicos del archivo DLL. Tenga en cuenta que los usuarios del archivo DLL aún deben vincularse a una biblioteca de importación.

Puede utilizar el mismo archivo de encabezado para el archivo DLL y para la aplicación de cliente. Para ello, utilice un símbolo de preprocesador especial que indique si está generando el archivo DLL o la aplicación de cliente. Por ejemplo:

#ifdef _EXPORTING
   #define CLASS_DECLSPEC    __declspec(dllexport)
#else
   #define CLASS_DECLSPEC    __declspec(dllimport)
#endif

class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };

¿Qué desea hacer?

¿Sobre qué desea obtener más información?

Vea también

Conceptos

Importar a una aplicación