C++ (네이티브, C++ CLI가 아닌) 코드에서 C# 클래스 메서드를 호출하는 방법이 궁금합니다. 간단하고 우아한 방법이 필요합니다.C++에서 C#을 호출하는 방법
답변
C# 어셈블리를 COM으로 표시하고 COM 인터페이스를 사용합니다. 그것이 내가 아는 한 자기가 IPC로 만든 것 옆에서 작동하게하는 유일한 방법이다. 문제는 .Net 어셈블리가 실행되고 C++이 기본 C++ 환경에서 실행되는 .NET 환경에서 발생합니다.
통신의 유일한 방법은 IPC 메커니즘 (소켓, ...)이거나 프로세스를 "분리"해야하므로 COM을 사용하는 것입니다.
사샤 Goldshtein이 물건의 사람이다 : 여기
는 COM 기반 솔루션을위한 튜토리얼입니다그것을 다시 여러 가지 방법이 있습니다 : 1. Reverse P/Invoke (.NET 대리자가 콜백으로 전달되어야하므로 시작은 .NET 코드에서 "동작"이 시작될 때만 유효합니다.); 2. COM interop (모든 .NET 클래스는 명시 적 인터페이스가 있거나없는 COM 개체 일 수도 있음). 3. C++/CLI 랩퍼 클래스.
또한 http://blogs.microsoft.co.il/blogs/sasha/archive/2008/02/16/net-to-c-bridge.aspx
페이지를 참조하십시오 :
http://www.gregcons.com/KateBlog/CallingManagedCodeFromNativeCode.aspx
당신은 "(C 번호는, VB.NET, F 번호, ...) 네이티브 C++ 프로그램이 호출하여 어떤 CLR Hosting 어떤 CLR 어셈블리를 포함 할 수 있습니다 ". 이것은 네이티브 프로그램 (예 : SQL Server)이 .NET 코드 확장을 지원하는 방법입니다. 예 : SQL Server의 SQL CLR
당신은 .NET에서 .NET 2.0 CorBindToRuntimeEx()
및 CLRCreateInstance()
를 사용하여 기본 과정에 CLR을로드 4.
세부 MSDN에서 발견, 또는 제프 리히터의 책 CLR via C# 할 수 있습니다.
+1 멋짐! 이것에 대해 몰랐어요! – gideon
가장 간단한 방법은 C++/CLI를 사용하는 것입니다. 코드에서 사용할 수 없다면 래퍼 dll을 작성하고 dll을 호출하십시오.
방향이 잘못되었습니다. – user496949
- 1. C에서 flex 파서를 호출하는 방법
- 2. C에서 COM 구성 요소를 호출하는 방법
- 3. C/C을 찾고 ++ 언어와 표준 라이브러리 사양
- 4. C에서 액티브 X 또는 DLL에서 자바 스크립트 함수를 호출하는 방법 #
- 5. C에서 스택 덤프를 호출하는 함수가 있습니까?
- 6. C에서 sem_open을 여러 번 호출하는 방법은 무엇입니까?
- 7. C에서 qsort를 구현하는 방법
- 8. MethodCallExpression에서 메서드를 호출하는 방법 #
- 9. 루프에서 값을 호출하는 방법?
- 10. 함수를 자동으로 호출하는 방법?
- 11. Jquery에서 ViewResult를 호출하는 방법
- 12. HTTP 호출하는 방법
- 13. QTP API를 호출하는 방법
- 14. 클래스간에 작업을 호출하는 방법?
- 15. Scala에서 Grails를 호출하는 방법
- 16. eTapestry API를 호출하는 방법
- 17. subView에서 viewWillAppear 호출하는 방법
- 18. WPF에서 서버에 호출하는 방법
- 19. GetGUIThreadInfo를 호출하는 방법 #
- 20. 스프링 포틀릿을 호출하는 방법
- 21. android에서 setListAdapter를 호출하는 방법
- 22. 소유자의 방법을 호출하는 방법?
- 23. "안전하게"호출하는 방법 assembly.GetTypes()?
- 24. PHP 함수를 호출하는 방법?
- 25. 백그라운드 스레드에서 호출하는 방법
- 26. schtask로 QProcess를 호출하는 방법
- 27. 매일 스케줄을 호출하는 방법
- 28. Java에서 C++ 호출하는 방법?
- 29. 함수를 호출하는 방법
- 30. bool 함수를 호출하는 방법
생각보다 좋을 수도 있습니다. –
[C++에서 C# 코드를 호출 할 수 있습니다] (http://stackoverflow.com/questions/778590/calling-c-sharp-code-from-c) – cdiggins