dllexport, dllimport
Específicos de Microsoft
Los atributos de clase de almacenamiento dllexport y dllimport son extensiones específicas de Microsoft para los lenguajes C y C++. Se pueden utilizar para exportar e importar funciones, datos y objetos a o de una DLL.
__declspec( dllimport ) declarator
__declspec( dllexport ) declarator
Comentarios
Estos atributos definen explícitamente la interfaz de la DLL para el cliente, que puede ser el archivo ejecutable u otra DLL. Declarar funciones como dllexport elimina la necesidad de un archivo de definición de módulos (.def), al menos en relación con la especificación de funciones exportadas. El atributo dllexport reemplaza la palabra clave __export.
Si una clase está marcada con declspec(dllexport), cualquier especialización de las plantillas de clase en la jerarquía de clases se marca implícitamente como declspec(dllexport). Esto significa que se crean explícitamente instancias de las plantillas de clase y que los miembros de la clase se deben definir.
El atributo dllexport de una función expone la función con el nombre representativo. Para las funciones de C++, esto incluye la eliminación de nombres. Para las funciones de C o las funciones declaradas como externas a "C", esto incluye la decoración específica de la plataforma que se basa en la convención de llamada. Si no desea la representación de nombres, utilice un archivo .def (palabra clave EXPORTS).
Cuando declare dllexport o dllimport, debe utilizar la sintaxis de atributo extendida y la palabra clave __declspec.
Ejemplo
// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();
Opcionalmente, para que el código sea más legible, puede utilizar definiciones de macro:
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )
DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;
Para obtener más información, vea:
FIN de Específicos de Microsoft