__declspec(dllimport)을 사용하여 애플리케이션으로 가져오기

DLL에 정의된 공용 기호를 사용하는 프로그램은 해당 기호를 가져온다고 합니다. DLL을 사용하여 빌드하는 애플리케이션의 헤더 파일을 만드는 경우 공용 기호를 선언하는 데 __declspec(dllimport)을 사용합니다. .def 파일을 사용하여 내보내든 __declspec(dllexport) 키워드를 사용하여 내보내든 __declspec(dllimport) 키워드가 작동합니다.

코드를 더 읽기 쉽게 만들려면 __declspec(dllimport)에 대한 매크로를 정의한 다음 이 매크로를 사용하여 가져온 각 기호를 선언합니다.

#define DllImport   __declspec( dllimport )

DllImport int  j;
DllImport void func();

함수 선언에서 __declspec(dllimport) 사용은 선택적이지만 이 키워드를 사용하면 컴파일러가 보다 효율적인 코드를 생성합니다. 그러나 가져오는 실행 파일이 DLL의 공용 데이터 기호 및 개체에 액세스하는 데 __declspec(dllimport)을 사용해야 합니다. DLL 사용자는 여전히 가져오기 라이브러리에 연결해야 합니다.

DLL과 클라이언트 애플리케이션 모두에 동일한 헤더 파일을 사용할 수 있습니다. 이렇게 하려면 DLL을 빌드하는지 또는 클라이언트 애플리케이션을 빌드하는지 나타내는 특수 전처리기 기호를 사용합니다. 예시:

#ifdef _EXPORTING
   #define CLASS_DECLSPEC    __declspec(dllexport)
#else
   #define CLASS_DECLSPEC    __declspec(dllimport)
#endif

class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };

수행할 작업

추가 정보

참고 항목

애플리케이션으로 가져오기