Red de conocimiento informático - Programación de la red - ¿Cómo debo llamar a la DLL en el sistema Windows?

¿Cómo debo llamar a la DLL en el sistema Windows?

Para exportar una función DLL, puede agregar la palabra clave function a la función DLL exportada o puede crear un archivo de definición de módulo (.def) que enumere las funciones DLL exportadas.

Dos métodos

Método 1. Agregar palabras clave de función a la función DLL exportada. Para usar palabras clave de función, debe usar las siguientes palabras clave para declarar cada función que se exportará: __declspec(dllexport). ) Para usar funciones DLL exportadas en su aplicación, debe declarar cada función que se importará usando la siguiente palabra clave: __declspec(dllimport) Por lo general, es mejor usar un encabezado que contenga una declaración de definición y un archivo de declaración ifdef para separar las declaraciones de exportación. y declaraciones de importación. Método 2: cree un archivo de definición de módulo (.def) para enumerar las funciones DLL exportadas. Utilice el archivo de definición de módulo para declarar las funciones DLL exportadas. Cuando utiliza un archivo de definición de módulo, no es necesario agregar palabras clave de función a las funciones DLL exportadas. En un archivo de definición de módulo, declara la declaración LIBRARY y la declaración EXPORTS de la DLL.

Llamadas especiales

Con respecto a las llamadas en circunstancias específicas, como el uso de la API win32 en funciones DLL o el uso de DLL generada por C++ para el lenguaje C estándar, debe prestar atención a las siguientes situaciones : Si se utiliza la API win32, el método de llamada debe ser "__stdcall". Cuando la DLL generada por C++ se utiliza en el lenguaje C estándar, el archivo de salida debe modificarse con "C" externo; de lo contrario, no se puede llamar en el lenguaje C estándar. Si utiliza el método de llamada "__stdcall", puede producir un nombre modificado que C no reconoce, por lo que al configurar la función de exportación, utilice el formato de archivo .def en lugar del formato __declspec(dllexport). Este último realizará la conversión de nombre modificado y el lenguaje C no puede reconocer la función.