Compartilhar via


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

O que você deseja fazer?

Que você deseja saber mais?

Consulte também

Conceitos

Exportando a partir de uma DLL