Exportar funciones de C para utilizarlas en ejecutables creados en C o C++

Si desea tener acceso a funciones de un archivo DLL programadas en C desde un módulo programado C o C++, debe utilizar la macro de preprocesador __cplusplus para determinar en qué lenguaje se va a compilar y, después, declarar estas funciones con la vinculación C si se van a utilizar en un módulo programado en C++. Si utiliza esta técnica y proporciona archivos de encabezado para el archivo DLL, los usuarios de C y C++ pueden realizar estas funciones hacer cambios.

El siguiente fragmento de código muestra un archivo de encabezado que se puede utilizar en aplicaciones cliente programadas en 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

Si tiene que vincular funciones programadas en C a un ejecutable programado en C++ y los archivos de encabezado de la declaración de función no han utilizado la técnica anterior, haga lo siguiente en el archivo de código fuente de C++ para evitar que el compilador decore los nombres de funciones programadas en C:

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

¿Qué desea hacer?

¿Qué más desea saber?

Vea también

Conceptos

Exportar desde un archivo DLL