Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Se você tiver funções em uma DLL escrita em C, poderá usar uma macro de pré-processador para torná-las fáceis de acessar a partir da linguagem C e do código da linguagem C++. A __cplusplus macro do pré-processador indica qual idioma está sendo compilado. Você pode usá-lo para declarar as funções com ligação C quando chamado a partir do código da linguagem C++. Se você usar 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 alteração.
O código a seguir mostra um arquivo de cabeçalho que os aplicativos cliente C e C++ podem usar:
// 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
Às vezes, você pode precisar vincular funções C ao seu executável C++, mas os arquivos de cabeçalho de declaração de função não usaram a técnica acima. Você ainda pode chamar as funções de C++. No arquivo de origem C++, envolva a #include diretiva para impedir que o compilador decore os nomes de função C:
extern "C" {
#include "MyCHeader.h"
}