Exporte 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 facilitar o acesso a partir da linguagem C e do código da linguagem C++. A macro de pré-processador __cplusplus indica qual linguagem está sendo compilada. Você pode usá-la para declarar as funções com vinculação C quando chamada 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 poderão ser usadas por usuários de C e C++ sem alterações.

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++, encapsule a diretiva #include para evitar que o compilador decore os nomes das funções C:

extern "C" {
#include "MyCHeader.h"
}

O que você deseja fazer?

Que mais você deseja saber?

Confira também

Exportando de uma DLL