인터페이스 IDL 파일을 C#로 변환합니다.
문제
C#에서 사용하려는 IDL 파일에 인터페이스가 정의되어 있습니다. IDL을 C#에서 사용할 수있는 것으로 변환하는 방법이 있습니까?
해결책
한 가지 방법은 실행하는 것입니다 MIDL
IDL에서 유형 라이브러리 (.tlb)를 만듭니다. 이것은 필요합니다 library
IDL의 차단. .tlb가 있으면 실행할 수 있습니다 tlbimp.exe
C# 정의/인터 로프 DLL을 얻기 위해.
다른 팁
IDL에 어떤 데이터 유형/구조가 사용됩니까? 이미 빌드 유형이없는 경우 먼저 C#에서 데이터 유형을 정의해야합니다.
다음 도구를 사용하여 구조물을 변환 할 수 있지만 OUPUT를 수동으로 확인해야합니다.
이 유틸리티는 다음과 같습니다 P/호출을위한 Windows API 상수 및 스트러크 액세스.
원래 2008 년 1 월 기사는 이제 .CHM 도움말 파일 다운로드, 바닥에 연결되어 있습니다 https://msdn.microsoft.com/magazine/msdn-magazine-issues. 당분간 소스 코드는 다음에서 찾을 수 있습니다. http://clrinterop.codeplex.com/.
예를 들어, 최근 XPS Print API를 사용했으며 XpsObjectModel.h 인터페이스가 필요했습니다. Windows SDK에는 xpsobjectmodel.idl이 다행히 제공됩니다.
MIDL을 먼저 사용하여 TLB 파일을 생성하고 TLBIMP를 사용하여 C# 프로젝트의 '참조 ...'섹션에 추가 할 준비가 된 적절한 DLL 어셈블리를 생성했습니다.
프로젝트 프레임 워크에 올바른 버전이있는 도구를 사용하십시오. 예를 들어, 프로젝트 프레임 워크가 3.5 기반 인 경우 4.0 도구 세트에서 TLBimp를 사용하여 작동하지 않습니다.