다음을 통해 공유


dllexport, dllimport

Microsoft 전용

dllexport 및 dllimport 저장소 클래스 특성은 C 및 C++ 언어에 대한 Microsoft 고유의 확장입니다. 이러한 특성을 사용하여 함수, 데이터 및 개체를 DLL에 내보내거나 DLL에서 가져올 수 있습니다.

__declspec( dllimport ) declarator 
__declspec( dllexport ) declarator

설명

이러한 특성은 실행 파일이나 다른 DLL일 수 있는 클라이언트에 대한 DLL 인터페이스를 명시적으로 정의합니다. 함수를 dllexport로 선언하면 적어도 내보낸 함수의 지정과 관련하여 모듈 정의(.def) 파일이 필요하지 않게 됩니다. dllexport 특성은 __export 키워드를 대체합니다.

클래스가 declspec(dllexport)로 표시된 경우 클래스 계층 구조에 있는 클래스 템플릿의 특수화는 암시적으로 declspec(dllexport)로 표시됩니다. 이는 클래스 템플릿이 명시적으로 인스턴스화되었으며 클래스의 멤버가 정의되어야 함을 의미합니다.

함수의 dllexport는 데코레이팅된 이름을 사용하여 함수를 노출합니다. C++ 함수의 경우 여기에 이름 변환이 포함됩니다. C 함수 또는 extern "C"로 선언된 함수의 경우에는 여기에 호출 규칙을 기반으로 하는 플랫폼별 데코레이션이 포함됩니다. 이름 데코레이션을 사용하지 않으려면 .def 파일을 사용하십시오(EXPORTS 키워드).

dllexport 또는 dllimport를 선언하는 경우 확장된 특성 구문과 __declspec 키워드를 사용해야 합니다.

예제

// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();

또는 매크로 정의를 사용하여 코드를 보다 읽기 쉽게 만들 수 있습니다.

#define DllImport   __declspec( dllimport )
#define DllExport   __declspec( dllexport )

DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;

자세한 내용은 다음을 참조하십시오.

Microsoft 전용 종료

참고 항목

참조

__declspec

C++ 키워드