Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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"
}