Partilhar via


Exportar funções C para uso em executáveis de linguagem C ou C++

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"
}

O que pretende fazer?

Sobre o que quer saber mais?

Ver também

Exportando de uma DLL