Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Específicos de Microsoft
Los dllexport atributos de clase de almacenamiento y dllimport son extensiones específicas de Microsoft para los lenguajes C y C++. Puede usarlos para exportar e importar funciones, datos y objetos hacia o desde un archivo DLL.
Sintaxis
__declspec( dllimport )declarator
__declspec( dllexport )declarator
Observaciones
Estos atributos definen explícitamente la interfaz del archivo DLL para su cliente, que puede ser el archivo ejecutable u otro archivo DLL. Declarar funciones como dllexport elimina la necesidad de un archivo de definición de módulo (.def), al menos con respecto a la especificación de funciones exportadas. El dllexport atributo reemplaza la __export palabra clave .
Si una clase está marcada como __declspec(dllexport), las especializaciones de plantillas de clase de la jerarquía de clases se marcan implícitamente como __declspec(dllexport). Significa que se crean instancias explícitas de plantillas de clase y se deben definir los miembros de la clase.
dllexport de una función expone la función con su nombre decorado, a veces conocido como "mangling de nombres". Para las funciones de C++, el nombre decorado incluye caracteres adicionales que codifican el tipo y la información de parámetros. Funciones o funciones de C que se declaran como extern "C" siguen las reglas de decoración de nombres de C. Para obtener más información sobre la decoración de nombres en código de C/C++, vea Nombres decorados.
Para exportar un nombre sin codificar, puede vincular mediante un archivo de definición de módulo (.def) que define el nombre sin codificar en una EXPORTS sección. Para obtener más información, consulte EXPORTS. Otra manera de exportar un nombre sin codificar es usar una #pragma comment(linker, "/export:alias=decorated_name") directiva en el código fuente.
Al declarar dllexport o dllimport, debe usar la sintaxis de atributo extendida y la __declspec palabra clave .
Ejemplo
// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();
Como alternativa, para que el código sea más legible, puede usar 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, consulte:
FIN Específico de Microsoft