Microsoft 전용
dllexport 스토리지 클래스 특성은 C 및 dllimport C++ 언어에 대한 Microsoft 관련 확장입니다. 이를 사용하여 함수, 데이터 및 개체를 DLL로 내보내고 가져올 수 있습니다.
문법
__declspec( dllimport )declarator
__declspec( dllexport )declarator
비고
이러한 특성은 실행 파일 또는 다른 DLL일 수 있는 해당 클라이언트에 대한 DLL의 인터페이스를 명시적으로 정의합니다. 함수를 선언 dllexport 하면 적어도 내보낸 함수의 사양과 관련하여 모듈 정의(.def) 파일이 필요하지 않습니다. 이 특성은 dllexport 키워드를 __export 대체합니다.
클래스가 표시된 __declspec(dllexport)경우 클래스 계층에서 클래스 템플릿의 특수화는 암시적으로 로 __declspec(dllexport)표시됩니다. 즉, 클래스 템플릿이 명시적으로 인스턴스화되고 클래스의 멤버를 정의해야 합니다.
dllexport 함수는 데코레이팅된 이름으로 함수를 노출하며, "name mangling"으로도 알려져 있습니다. C++ 함수의 경우 데코레이팅된 이름에는 형식 및 매개 변수 정보를 인코딩하는 추가 문자가 포함됩니다. C 이름 장식 규칙을 따르도록 extern "C" 선언된 C 함수 또는 함수입니다. C/C++ 코드의 이름 장식에 대한 자세한 내용은 데코레이팅된 이름을 참조하세요.
디코이트되지 않은 이름을 내보내려면 섹션에서 디코레이션되지 않은 이름을 EXPORTS 정의하는 모듈 정의(.def) 파일을 사용하여 연결할 수 있습니다. 자세한 내용은 EXPORTS를 참조하세요. 색이 지정되지 않은 이름을 내보내는 또 다른 방법은 소스 코드에서 지시문을 사용하는 #pragma comment(linker, "/export:alias=decorated_name") 것입니다.
선언 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 전용 종료