Compartilhar via


Exportando 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 o módulo de idioma do C++, você deve usar o __cplusplus macro pré-processador para determinar qual idioma está sendo compilado e, em seguida, declare a essas funções com ligação c se sendo usada a partir de um módulo de linguagem C++. Se você usa essa técnica e fornece os arquivos de cabeçalho para a 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 de 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 funções c para o executável do C++ e os arquivos de cabeçalho de declaração de função não tem usado a técnica acima, o arquivo de origem do C++, faça o seguinte para impedir que o compilador decorando os nomes de função C:

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

O que você deseja fazer?

O que você deseja saber mais a respeito?

Consulte também

Conceitos

Exportação de uma DLL