Importar a una aplicación mediante __declspec(dllimport)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

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á compilando 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 ... };  

Importar a una aplicación

Mostrar: