C 또는 C++ 언어 실행 파일에서 사용할 C 함수 내보내기

C로 작성된 DLL에 함수가 있는 경우 전처리기 매크로를 사용하여 C 언어 및 C++ 언어 코드 모두에서 쉽게 액세스할 수 있습니다. 전처리기 매크로는 __cplusplus 컴파일 중인 언어를 나타냅니다. C++ 언어 코드에서 호출할 때 C 링크가 있는 함수를 선언하는 데 사용할 수 있습니다. 이 방법을 사용하고 DLL의 헤더 파일을 제공하는 경우 관련 함수를 C 및 C++ 사용자가 변경 없이 사용할 수 있습니다.

다음 코드는 C 및 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

C 함수를 C++ 실행 파일에 연결해야 하는 경우도 있지만 함수 선언 헤더 파일은 위의 기술을 사용하지 않았습니다. C++에서 함수를 계속 호출할 수 있습니다. C++ 소스 파일에서 컴파일러가 #include C 함수 이름을 데코레이팅하지 못하도록 지시문을 래핑합니다.

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

수행할 작업

추가 정보

참고 항목

DLL에서 내보내기