가상 테이블 개념을 사용하는 Link의 도움으로 .NET 응용 프로그램에서 C++ Dll을 상속하는 응용 프로그램을 만들었습니다. C++ Dll을 상속 할 수있는 가능성을 찾으려고했습니다. . 링크 위는 나를 위해 매우 도움이된다. 네이티브 C++의 지원 프레임 워크 인 Firebreath 프레임 워크의 JSAPI에서 C# 클래스를 상속 받고 싶습니다. Dumpbin.exe를 사용하여 .Net 응용 프로그램에서 내 보낸 함수를 확인하고 있습니다. 해결책이 있으면 알려주십시오.JSAPI에서 C#을 계승
0
A
답변
1
내가 아는 한 최선을 다해 직접하고 싶은 일을 할 방법이 없습니다. 그러나 리플렉션 API를 사용하여 HasMethod, HasProperty, GetProperty, SetProperty 및 Invoke와 같은 메소드를 구현하면 관리 객체를 래핑 할 수있는 JSAPI를 확장하는 무언가를 만들 수 있습니다. Firebreath 소스의 NPObjectAPI를 살펴 보겠습니다. FireBreath에는 일반적으로 JSAPI를 따르지 않는 것들이 JSAPI 객체처럼 작동하도록하는 몇 가지 객체가 있습니다.
답장을 보내 주셔서 감사합니다. JSAPI를 확장하여 관리 대상 객체를 래핑 할 수 있도록 만드시겠습니까? plugin.h를 포함 할 래퍼로 사용할 수있는 C++ 클래스 라이브러리를 구현할 것입니다. , pluginApi.h 파일을 사용하여 Firebreath Functions.Then에 쉽게 액세스 할 수 있으므로 C#에서 firebreath 함수를 호출하는 올바른 방법입니까? – SkoolBoyAtWork
JSAPI를 확장하는 C++ 객체를 만들 수 있습니다. 그런 다음 해당 객체 내부의 관리 객체에 참조 등을 넣을 수 있습니다. 그런 다음 둘 사이의 프록시 호출에 코드를 추가합니다. – taxilian
"올바른 방법으로 C#에서 Firebreath 기능을 호출 할 수 없습니다." 당신이 만드는 모든 방법이 있습니다. – taxilian