Visual C++ DLL export

// 함수 프로토타입 선언
extern "C"  __declspec(dllexport) Function();
// 함수
Function()
{
   ...
}

// 설명
extern "C"
: 컴파일시 C 스타일을 사용하여 함수명을 변경하지 않도록 해준다. 참고로 C 에서는 컴파일시 함수이름을 그대로 사용하지만 C++ 에서는 오버로딩 처럼 같은 함수이름이 존재할 수 있어, 컴파일시 함수에 특정값을 붙여 원래의 함수명을 변경한다.
__declspec(dllexport)
: 외부 프로그램에서 DLL에 있는 함수를 사용할 수 있도록 해준다. C와 호환을 유지하지 않는다면 extern "C" 는 빼도 된다.

comments:

댓글 쓰기