차례:
정의-DllImport 속성은 무엇을 의미합니까?
DllImport Attribute는 클래스 메서드가 .NET 어셈블리가 아닌 외부 DLL (동적 연결 라이브러리)에 정의 된 것으로 표시하기 위해 C #에서 사용되는 선언적 태그입니다.
DllImport 속성은 런타임에 CLR (공용 언어 런타임) 제어 외부에서 실행되는 관리되지 않는 코드로 구현 된 외부 DLL에서 내 보낸 함수를 호출하는 데 사용됩니다. 또한 호출 규칙, 관리 코드와 관리되지 않는 코드 사이에 전달 된 매개 변수의 변환 유형 등과 같은 함수를 호출 할 때 필요한 다른 정보를 지정하는 데 사용됩니다. 따라서 Windows에 상주하는 관리되지 않는 구성 요소와 레거시 구성 요소의 코드와 상호 운용하는 데 사용됩니다. DLL은 C 또는 C ++로 작성되었습니다.
DllImport는 CLR에 의해 코드가 실행되는 관리되는 응용 프로그램의 기능을 Win32 API (응용 프로그래밍 인터페이스) 및 구현 된 다른 사용자 정의 관리되지 않는 코드의 기능에 액세스하고 재사용해야만 확장 할 수있는 상황에서 유용합니다. DLL에서. 이를 통해 관리되는 응용 프로그램에서 휠을 다시 만들지 않고도 개발 노력을 절약하고 기존의 강력하고 테스트를 거친 기존 코드를 활용할 수 있습니다. 다시 쓸 수는 없지만 수정할 수있는 DLL을 사용하는 동안 필요합니다.
Techopedia는 DllImport 속성을 설명합니다
DllImport 속성은 관리되는 응용 프로그램에서 내 보낸 함수를 호출하기위한 선언문입니다. 클래스 인스턴스가 필요한 멤버 함수에는 사용할 수 없습니다. 설계시 적용되는 메소드를 선언하기 전에 대괄호 안에 디자인 타임에 지정됩니다. 함수 선언 전에 문자열“extern”을 사용해야합니다.
예를 들어 DllImport 특성은 일부 계산을 수행하기 위해 구성 요소 개체 모델 구성 요소 (코드가 관리되지 않는)의 메서드를 호출하는 관리되는 응용 프로그램 인 Windows Forms 응용 프로그램에서 사용할 수 있습니다.
원래 Windows DLL 내보내기 메커니즘을 사용하여 해당 기능을 내보내는 기존 DLL을 가져 오도록 설계되었습니다. 관리되는 응용 프로그램의 프로젝트에서 직접 참조 할 수있는 관리되는 어셈블리 (DLL)의 코드를 사용하기위한 것이 아닙니다.
DllImport 속성은 CLR의 InteropServices를 사용하여 관리 코드에서 비 관리 코드로의 호출을 실행합니다. 또한 사용 된 함수의 구현 위치에 대해 컴파일러에 알려줍니다. 관리 코드에서이 속성을 가진 관리되지 않는 랩퍼 함수가 호출되면 CLR이 필요한 DLL을 찾아로드합니다. 매개 변수를 마샬링하고 (사양에 따라 매개 변수를 변환) 실행 후 관리되지 않는 코드를 매개 변수의 적절한 변환과 함께 반환합니다.
DllImport 속성을 사용하는 동안 쉽게 찾을 수없는 위치에서 오타가 발생할 수 있으므로 올바른 DLL 이름과 내 보낸 함수를 사용하도록주의를 기울여야합니다.