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"
}