¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Importante Es posible que este documento no represente los procedimientos recomendados para el desarrollo actual. Puede que los vínculos a las descargas y otros recursos ya no sean válidos. Encontrará aquí la versión que se recomienda en la actualidad.

Importar datos mediante __declspec(dllimport)

En el caso de los datos, es conveniente utilizar __declspec(dllimport) para eliminar un nivel de direccionamiento indirecto. Cuando importe datos desde un archivo DLL, aún tendrá que recorrer la tabla de direcciones de importación. Antes de que existiera __declspec(dllimport), esto significaba que tenía que acordarse de realizar un nivel de direccionamiento indirecto adicional al obtener acceso a datos exportados desde el archivo DLL:

// project.h
#ifdef _DLL   // If accessing the data from inside the DLL
   ULONG ulDataInDll;

#else         // If accessing the data from outside the DLL
   ULONG *ulDataInDll;
#endif

A continuación, se exportarían los datos del archivo .DEF:

// project.def
LIBRARY project
EXPORTS
   ulDataInDll   CONSTANT

y tendría acceso a los mismos fuera del archivo DLL:

if (*ulDataInDll == 0L) 
{
   // Do stuff here
}

Ahora, cuando marca los datos como __declspec(dllimport), el compilador genera automáticamente el código de direccionamiento indirecto. Ya no se tiene que preocupar de realizar los pasos anteriores. Como se indicó anteriormente, no debe utilizar la declaración __declspec(dllimport) en los datos al generar el archivo DLL. Las funciones del archivo DLL no utilizan la tabla de direcciones de importación para obtener acceso al objeto de datos; por lo tanto, no estará presente el nivel adicional de direccionamiento indirecto.

Para exportar los datos automáticamente desde el archivo DLL, utilice la siguiente dirección:

__declspec(dllexport) ULONG ulDataInDLL;

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft