2013-09-30 1 views
0

Я создал приложение, которое наследует C++ Dll в .Net-приложении с помощью Link, который использовал концепцию виртуальной таблицы. Я пытался выяснить возможность наследования C++ Dll в .Net , Выше ссылка очень полезна для меня. Теперь я хочу наследовать свой класс C# из JSAPI инфраструктуры Firebreath, который является поддерживающей средой Native C++. Я использую Dumpbin.exe для проверки того, какие функции экспортируются в моем приложении .Net. Пожалуйста, дайте мне знать, если какое-либо решение.наследовать C# из JSAPI

ответ

1

Насколько я знаю, нет никакого способа напрямую делать то, что вы хотите сделать; однако вы могли бы создать что-то, что расширяет JSAPI, который затем может обернуть управляемый объект, хотя, используя API-интерфейсы отражения для реализации таких методов, как HasMethod, HasProperty, GetProperty, SetProperty и Invoke. Посмотрите на NPObjectAPI в источнике firebreath как на пример того, что я имею в виду. FireBreath имеет несколько таких объектов, которые делают вещи, которые обычно не соответствуют JSAPI, как JSAPI-объекты.

+0

Спасибо за ваш ответ. Не могли бы вы предложить мне, что я хочу создать, что расширяет JSAPI, который может затем обернуть управляемый объект? Я собираюсь реализовать библиотеку классов C++, которая может использоваться как оболочка, которая будет включать в себя plugin.h , pluginApi.h, чтобы я мог легко получить доступ к моим функциям Firebreath. Тогда это правильный способ вызвать функции firebreath в C#? – SkoolBoyAtWork

+0

Вы должны создать объект C++, который расширяет JSAPI. Затем вы помещали ссылку и такому в управляемый объект внутри этого объекта. Затем вы добавили код для прокси-вызовов между ними. – taxilian

+0

Не существует «правильного способа вызова функций firebreath в C#». Существует способ, который вы создаете. – taxilian