Exportar funções c para uso em c ou C++ idioma executáveis
Se você tiver funções em uma DLL escrita em c que você deseja acessar a partir de uma linguagem c ou módulo de linguagem C++, você deve usar o __cplusplus macros de pré-processador para determinar qual idioma está sendo compilado e depois declarar estas funções com vinculação c se sendo usado de um módulo de linguagem C++.Se você usa essa técnica e fornece arquivos de cabeçalho para sua DLL, essas funções podem ser usadas por usuários de c e C++ sem alteração.
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 c funções ao seu C++ executável e os arquivos de cabeçalho de declaração de função não tem usado a técnica acima no arquivo de origem C++, faça o seguinte para impedir que o compilador decorando os nomes de função C:
extern "C" {
#include "MyCHeader.h"
}