fmodex.dll ¿Qué significa esto?
Un archivo DLL es un archivo de biblioteca de enlaces dinámicos. Es un archivo ejecutable que permite a un programa compartir el código y otros recursos necesarios para realizar tareas especiales.
Aplicaciones relativamente grandes. Compuesto por muchos módulos, que completan funciones relativamente independientes y cooperan entre sí para completar el trabajo de todo el sistema de software. Puede haber algunos módulos cuyas funciones sean más generales y aún se utilizarán al construir otros sistemas de software. Al construir un sistema de software, si el código fuente de todos los módulos se compila estáticamente en el archivo EXE completo de la aplicación, surgirán algunos problemas: una desventaja es que aumenta el tamaño de la aplicación, lo que ocupa más espacio en el disco y el programa se ejecuta. También consumirá una gran cantidad de espacio de memoria, lo que provocará un desperdicio de recursos del sistema. Otra desventaja es que al escribir un programa EXE grande, todos los códigos fuente deben ajustarse y compilarse cada vez que se modifica y reconstruye, lo que aumenta la complejidad de; el proceso de compilación, que tampoco es propicio para pruebas unitarias por etapas. La plataforma del sistema Windows proporciona un entorno de programación y ejecución completamente diferente y más eficaz. Puede crear módulos de programa independientes como archivos DLL (Biblioteca dinámica enlazable) más pequeños y compilarlos y probarlos por separado. En tiempo de ejecución, el sistema cargará estos módulos DLL en el espacio de la memoria solo si el programa EXE realmente quiere llamarlos. Este enfoque no sólo reduce el tamaño del archivo EXE y los requisitos de espacio de memoria, sino que también permite que múltiples aplicaciones utilicen estos módulos DLL al mismo tiempo. El propio Windows implementa algunas funciones importantes del sistema en forma de módulos DLL.
En términos generales, una DLL es un archivo de disco. Los archivos del sistema con .dll, .DRV, .FON, .SYS y muchas extensiones .EXE pueden ser DLL. Consiste en datos globales, funciones de servicio y recursos. El sistema lo carga en el espacio virtual del proceso de llamada en tiempo de ejecución y se convierte en parte del proceso de llamada. Si no hay conflictos con otras DLL, el archivo generalmente se asigna a la misma dirección en el espacio virtual del proceso. El módulo DLL contiene varias funciones exportadas para brindar servicios al mundo exterior. Una DLL puede tener su propio segmento de datos, pero no tiene su propia pila. Utiliza el mismo modo de pila que la aplicación que la llama; una DLL tiene solo una instancia en la memoria; la DLL implementa la encapsulación de código; está relacionado con el lenguaje de programación específico. No tiene nada que ver con el compilador.
En un entorno Win32, cada proceso copia sus propias variables globales de lectura/escritura. Si desea compartir memoria con otros procesos, debe utilizar un archivo asignado en memoria o declarar un segmento de datos compartido. La memoria de pila requerida por los módulos DLL se asigna desde la pila del proceso en ejecución. Windows compara las llamadas a funciones de proceso con las funciones exportadas del archivo DLL cuando carga un módulo DLL. La operación del sistema operativo Windows en la DLL es solo asignar la DLL al espacio de direcciones virtuales del proceso que la necesita. Cualquier objeto (incluidas las variables) creado por código dentro de una función DLL es propiedad del hilo o proceso que lo llama.
Método de llamada:
1. Método de llamada estática: el sistema de compilación completa la carga de la DLL y la codificación de la descarga de la DLL cuando finaliza el programa de aplicación (si otros programas usan el DLL, luego Windows reduce el registro de aplicación de la DLL en 1 y no lo libera hasta que todos los programas relacionados hayan terminado de usar la DLL. Es simple y práctico, pero no lo suficientemente flexible y solo puede cumplir con los requisitos generales: las llamadas implícitas. Es necesario generar una biblioteca de enlaces dinámicos. Cuando el archivo .LIB generado se agrega al proyecto de la aplicación, si desea utilizar las funciones en la DLL, solo necesita explicarlo. La llamada implícita no requiere llamar a LoadLibrary () y. FreeLibrary() cuando el programador crea un archivo DLL, el vinculador genera automáticamente un archivo de importación LIB correspondiente. Este archivo contiene el nombre simbólico y el número de identificación opcional de cada función DLL exportada, pero no contiene el código real con el que se compila el archivo LIB. como reemplazo de la DLL en el proyecto de la aplicación.
Cuando un programador compila y genera una aplicación mediante enlaces estáticos, las funciones de llamada en la aplicación coinciden con los símbolos exportados en el archivo LIB, y estos símbolos o números de identificación ingresan al archivo EXE generado. El archivo LIB también contiene el nombre del archivo DL L correspondiente (pero no el nombre de la ruta completa), que el vinculador almacena dentro del archivo EXE. Cuando una aplicación necesita cargar un archivo DLL durante la ejecución, Windows descubre y carga la DLL en función de esta información y luego vincula dinámicamente la función DLL a través del nombre del símbolo o el número de identificación. Todos los archivos DLL llamados por la aplicación se cargarán en la memoria cuando se cargue el archivo EXE de la aplicación. El programa ejecutable se vincula a un archivo de biblioteca de entrada (archivo .LIB) que contiene información sobre las funciones exportadas de la DLL. El sistema operativo carga la DLL cuando carga el programa ejecutable. El programa ejecutable llama directamente a la función de salida de la DLL a través del nombre de la función. El método de llamada es el mismo que el de otras funciones dentro del programa.