Exportando funções do C a serem usadas em executáveis da linguagem C ou C++
Se você tiver funções em uma DLL escrito em C que você deseja acessar o módulo da linguagem c ou da linguagem C++, você deve usar a macro de pré-processador de __cplusplus para determinar qual idioma está sendo compilado, e para declarar essas funções com esse tipo de C se sendo usado no módulo da linguagem c. criando Se você usar esta técnica e fornece arquivos de cabeçalho para o DLL, essas funções podem ser usadas pelos usuários de 2.0 C e C++ sem a alteração.
O código a seguir mostra um arquivo de cabeçalho que pode ser usado por aplicativos cliente c e C++: 2.0
// 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 de C ao executável C++ e os arquivos de cabeçalho de declaração da função não usam a técnica acima, no arquivo de origem C++, faça o seguinte para impedir que o compilador decore os nomes de função c: 2.0
extern "C" {
#include "MyCHeader.h"
}