Exportar funções C para uso em C ou arquivos executáveis de linguagem C++
Se você tem funções em uma DLL escrita em C que você deseja acessar um linguagem C ou C++ módulo de idioma, você deve usar o __cplusplus macro pré-processador para determinar qual idioma está sendo compilado e declarar essas funções com ligação C, em seguida, se em uso de um módulo de linguagem C++.Se você usa essa técnica e fornecer arquivos de cabeçalho para sua DLL, essas funções podem ser usadas por usuários C e C++ sem alterar.
O código a seguir mostra um arquivo de cabeçalho que pode ser usado por aplicativos cliente C e 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
Se você precisar vincular funções C para o executável do C++ e os arquivos de cabeçalho de declaração de função não tiverem usado técnica acima, no arquivo de fonte C++, faça o seguinte para impedir que o compilador decorando os nomes das funções C:
extern "C" {
#include "MyCHeader.h"
}