저는 C# 프로그래머이고 Native로 소개하지 않습니다. 내 프로젝트에이 DLL을 사용하는 기본 DLL이 &이지만 형식의 일부가 관리되는 코드에서 실용적이지 못하기 때문에 발생합니다. 네이티브 (C++)로 DLL을 준비하고 이벤트가 발생하면 내 관리 코드를 인식해야합니다. 어떻게해야합니까?네이티브 DLL 만들기
1
A
답변
1
네이티브 DLL의 API를 사용하면 이벤트가 발생할 때 호출 할 콜백 함수 포인터를 등록 할 수 있으므로 일반 C# 델리게이트를 함수 포인터 (Marshal.GetFunctionPointerForDelegate
)로 마샬링하고 다음을 통해 관리되는 대리인을 등록하면됩니다. P/Invoke.
1
C# 코드에서 네이티브 이벤트를 처리하려면 가장 좋은 방법은 C++ 네이티브 DLL과 C# DLL 사이의 중간 계층으로 작동하는 C++/CLI DLL을 작성하는 것입니다. 이렇게하면 중간 라이브러리의 이벤트를 처리하고이를 전달하여 관리되는 DLL에서 다시 캡처 할 수 있습니다.
또 다른 옵션은 네이티브 DLL을 COM DLL로 작성하고 거기에서 COM Dispatch Events를 발생시키는 것입니다. 이 COM DLL Interop을 작성하면 C# DLL에서 직접 이벤트를 캡처 할 수 있습니다. 그러나 COM 프로그래밍을 처음 접한다면이 경로는 매우 가파른 학습 곡선을 갖습니다.
관련 문제
- 1. 레어 런스 네이티브 dll
- 2. C# 내에서 네이티브 dll stdout/stderr 리디렉션
- 3. 새 코드없이 libs에서 DLL 만들기
- 4. 네이티브 VC++ 6 응용 프로그램에서 관리되는 DLL
- 5. DLL 내보내기의 헤더 만들기
- 6. qt에서 dll 만들기
- 7. dll 파일 만들기
- 8. vb6에서 ActiveX dll 만들기
- 9. HEX 코드로 DLL 만들기
- 10. MonoTouch iPhone : 네이티브 어셈블리 .NET 래퍼 만들기
- 11. 다른 dll (MSVS2008 C++)에 연결되는 DLL 만들기
- 12. 은 네이티브 모드에서 sdcard에서 안드로이드로드 dll 수 있습니다
- 13. 네이티브 C++ DLL 사용 여부에 대한 조언 : PINVOKE & Marshaling?
- 14. C# .NET에서 Win32 네이티브 DLL 파일을로드 할 수 없습니다.
- 15. 네이티브 C++ DLL을 .NET에 래핑하는 DLL 종속성 추적
- 16. 는 I 네이티브 C++ DLL 및 두 개의 클래스가 ATL
- 17. C# Com 래퍼에서 네이티브 dll을 사용하고 Silverlight에서 DLL 사용
- 18. java.lang.UnsatisfiedLinkError : 네이티브 라이브러리 {____. dll}이 이미 다른 클래스 로더에로드되었습니다.
- 19. JAVA를 통해 C++ 네이티브 DLL (네임 스페이스 포함)에 액세스
- 20. nmake를 사용하여 cpp 파일에서 dll 만들기
- 21. .dll 파일의 .xml 및 .pdb 파일 만들기
- 22. C++ 소스 파일에서 Windows DLL 만들기
- 23. 설치 프로젝트 DLL 파일 만들기 정보
- 24. GAC dll 용 XSD 스키마 파일 만들기
- 25. C++ DLL 만들기 : 정적 변수 초기화 문제
- 26. 네이티브 코드 디버그
- 27. 다른 플러그인에서 DLL과 네이티브 호출을 분리하십시오.
- 28. DLL
- 29. 네이티브 C++
- 30. 네이티브 CheckedListBox?