Compartir a través de


Exportación de funciones de C para usarlas en ejecutables del lenguaje C o C++

Si tiene funciones en una DLL escrita en C, puede usar una macro de preprocesador para facilitar el acceso desde el lenguaje C y el código de lenguaje C++. La macro de preprocesador __cplusplus indica qué lenguaje se está compilando. Puede usarlo para declarar las funciones con vinculación de C cuando se llama desde código de lenguaje C++. Si usa esta técnica y proporciona archivos de encabezado para el archivo DLL, los usuarios de C y C++ podrán usar estas funciones sin cambios.

En el código siguiente se muestra un archivo de encabezado que pueden usar las aplicaciones cliente de C y C++:

// MyCFuncs.h
#ifdef __cplusplus
extern "C" {  // only need to export C interface if
              // used by C++ source code
#endif

__declspec( dllimport ) void MyCFunc();
__declspec( dllimport ) void AnotherCFunc();

#ifdef __cplusplus
}
#endif

A veces es posible que tenga que vincular funciones de C al archivo ejecutable C++, pero los archivos de encabezado de declaración de función no han usado la técnica anterior. Todavía puede llamar a las funciones desde C++. En el archivo de código fuente de C++, ajuste la directiva #include para evitar que el compilador decore los nombres de función de C:

extern "C" {
#include "MyCHeader.h"
}

¿Qué desea hacer?

¿Qué más desea saber?

Consulte también

Exportación desde un archivo DLL