문제

.NET에서 관리되지 않는 코드를 동적으로 호출하는 가장 좋은 방법은 무엇입니까?

예를 들어, 나는 그들 사이에 일반적인 C 스타일 수출이있는 많은 관리되지 않은 DLL이 있습니다. DLL로가는 길을 가져간 다음 P/는 내보내는 이름을 기반으로 함수를 호출하고 싶습니다. 런타임까지 DLL 이름을 모릅니다.

기본적으로, 동등한 것은 무엇입니까? LoadLibrary 그리고 GetProcAddress .NET의 경우? (이 기능을 사용하여 동일한 목표를 달성하여 동일한 목표를 완전히 관리하지 않는 코드로 사용하는 기존 코드가 있습니다).

도움이 되었습니까?

해결책

이 기사에서는 GetProcaddress를위한 TypeSafe 관리 래퍼를 설명합니다.

http://blogs.msdn.com/jmstall/archive/2007/01/06/typesafe-getprocaddress.aspx

다른 팁

p/로 loadlibrary 및 getProcaddress로 호출 한 다음 사용 하여이 작업을 수행 할 수 있습니다. Marshal.getDelegateForFunctionPointer.

자세한 내용은 참조하십시오 이 기사.

또한 참조하십시오 이것 Jonathan Swift 타이틀의 블로그 게시물.

당신이 가진 옵션 중 하나는 적절한 DLL을로드하고 메모리에 함수를로드 한 다음 해당 기능을 경로를 기반으로 관리 코드로 반환하는 기본 기능을 작성하는 것입니다. 이렇게하면 GetProcadDress 트릭을 자연스럽게 사용하고 기능 지점을 반환 할 수 있습니다. 그런 다음이 함수에 핀발하여 대의원을 되 찾아서 적절한 DLL로 호출 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top