Exportar (0) Imprimir
Expandir todo

Diferencias entre archivos DLL para Win16 y archivos DLL para Win32

Visual Studio .NET 2003

Si ya generó archivos DLL de 16 bits para Windows 3.x, notará que es mucho más conveniente generar archivos DLL de 32 bits. El compilador ofrece compatibilidad más directa, que permite pasar por alto varios pasos de la creación de archivos DLL. Las diferencias específicas entre archivos DLL para Win16 y archivos DLL para Win32 son:

  • No hay ningún módulo de inicio independiente al que vincular. La secuencia de inicio del archivo DLL se controla directamente mediante código de la biblioteca en tiempo de ejecución de C/C++ vinculado al archivo DLL.
  • El código de la biblioteca en tiempo de ejecución inicializa los objetos C++ no locales estáticos llamando a los constructores apropiados. Cada proceso obtiene su propia copia de todos los datos estáticos del archivo DLL, incluidos los objetos.
  • Ya no necesita la función LibMain ni un WEP (procedimiento de salida de Windows, Windows Exit Procedure). El punto en el que debe agregar código de inicialización y finalización para el archivo DLL dependerá del tipo de DLL que desee generar. En lugar de LibMain, debe proporcionar la función DllMain, a la que se llama para la entrada y la salida.
  • Puede importar y exportar símbolos directamente en el código fuente. Si utiliza el atributo __declspec(dllexport) (similar a __export en Windows 3.x), no tiene que utilizar un archivo de definición de módulo independiente para exportaciones.
  • Los archivos ejecutables que utilizan __declspec(dllimport) para importar datos, objetos y funciones desde un archivo DLL hacen que el compilador genere código más eficaz.
  • El tiempo de ejecución de las llamadas a rutinas registradas con atexit puede variar.
  • Además de archivos DLL para Win32 que no están basados en MFC, Visual C++ ofrece tres tipos de archivos DLL de MFC.

¿Qué desea hacer?

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

Vea también

Archivos DLL

Mostrar:
© 2015 Microsoft