programing

인터op dll이란 무엇입니까?

skycolor 2023. 7. 1. 08:15
반응형

인터op dll이란 무엇입니까?

해명이 필요해요.Crystal Reports를 사용하는 Reportwriter dll이 있습니다.그것은 VB6로 쓰여 있습니다.저는 이 dll을 제 asp.net 프로젝트에 추가해야 합니다. 여기서 인터op dll을 만듭니다.

내가 알기로는 인터op dll은 내 .net 코드가 Reportwriter dll과 대화할 수 있도록 중개자로 존재합니다.

그럼 인터op dll을 등록해야 하나요, 아니면 원래 dll을 등록해야 하나요?

VB6에서 코드를 작성하면 컴파일된 결과가 COM 구성 요소가 됩니다. COM 구성 요소는 인터페이스, coclass, 구조체 및 열거형을 제공하며, 일반적으로 COM 유형 라이브러리를 사용하여 설명됩니다.그러나 .NET에서 해당 COM 구성 요소를 사용하려면 .NET이 인식하는 형식, 즉 .NET 어셈블리의 형식 설명이 필요합니다(형식 라이브러리와 직접 작동할 수 없기 때문에).그러므로 interop 어셈블리는 형식 라이브러리에서 동일한 것에 해당하는 인터페이스, 구조체 등에 대한 설명을 포함한다는 점에서 "변환된" COM 형식 라이브러리일 뿐입니다.

(인터op 어셈블리는 형식 라이브러리에서 생성될 필요가 없기 때문에 위의 내용은 다소 단순합니다 - 예를 들어, 원한다면 수동으로 코딩할 수 있습니다.)

흔히 말하는 것과 달리, 인터op 어셈블리는 실행 코드를 포함하지 않으며, 마샬링도 수행하지 않습니다.형식 정의만 포함되어 있으며 메서드를 가질 수 있는 곳은 인터페이스뿐이며, 인터페이스의 메서드는 구현이 없습니다.COM one에 대한 .NET 호출은 실제로 상호 운용 어셈블리에서 로드된 형식 설명을 기반으로 CLR 자체에서 수행되며 필요한 모든 코드를 즉시 생성합니다.

이제 질문에 대해 말씀드리겠습니다.COM DLL(VB6의 출력) 프로젝트를 등록해야 합니다(예:regsvr32.exe인터op 어셈블리는 COM 구성 요소가 아니기 때문에 일반 .NET 어셈블리이므로 그런 방식으로 등록할 수 없습니다. 따라서 .exe/.dll과 동일한 폴더에 넣거나 평소와 같이 GAC에 넣을 수 있습니다.

파벨의 좋은 대답입니다.또한 .NET Framework 버전 4부터는 애플리케이션과 함께 인터op 어셈블리를 배포할 필요가 없습니다. - http://msdn.microsoft.com/en-us/library/tc0204w0.aspx

맞습니다.interop DLL은 호출을 VB6 구성 요소로 래핑하여 투명하게 만듭니다.

응용 프로그램을 실행할 컴퓨터에서 DLL을 등록할 때는 VB6 DLL을 등록해야 합니다.인터op DLL은 앱의 bin 폴더를 배치하고 호출을 마셜합니다.

프로젝트에서 . 이를 사용하면 이 생성됩니다. VB6 dll은 .NET .NET 파일입니다.Interop.dll

언급URL : https://stackoverflow.com/questions/1670940/what-is-the-interop-dll

반응형