Есть ли ЗАОВсе в огненном дыхании помочь в этом вопросе? Потому что то, что я только что видел, он обрабатывает только события, произошедшие в проекте firebreath (native c ++). Я здесь?
Я использовал концепцию интерфейса IConnectionPoint для установления соединения с исходящим интерфейсом, содержащим сигнатуры событий. Мой код очень похож эта почта.
Также я нашел это информация о подключении COM с клиентом.Есть вопрос здесь и сейчас:
Должен ли мой класс PluginAPI реализовать этот исходящий интерфейс в файле PluginAPI.h?
Как это,
class PluginAPI : public FB::JSAPIAuto, public ManagedDLL::ICalculatorEvents
{
//register methods
}
Если так, то это поднимает 2 ошибки
Рассказ не может создать экземпляр абстрактного класса. Указывает мне на эти строки make_shared.hpp
шаблон< класс T, класс A1, класс A2>
повышение :: shared_ptr< T> make_shared (A1 && а1, а2 && а2)
{
повышение :: shared_ptr< T> pt (static_cast< T *> (0), BOOST_SP_MSD (T));
boost::detail::sp_ms_deleter< T > * pd = boost::get_deleter< boost::detail::sp_ms_deleter< T > >( pt );
void * pv = pd->address();
::new( pv ) T( ////HERE
boost::detail::sp_forward<A1>( a1 ),
boost::detail::sp_forward<A2>( a2 )
);
и 2. для alignment_of.hpp
template <typename T>
struct alignment_of_hack
{
char c;
T t; ///HERE
alignment_of_hack();
};
Застрял здесь на последние 2 дня. Также любой обходной путь для этого.
Ничего не знаю о взаимодействии C #, которое вы пытаетесь сделать, но я могу вам сказать, что проблема, с которой вы сталкиваетесь с «не может создать экземпляр абстрактного класса», заключается в том, что вы расширяете ManagedDLL :: ICalculatorEvents, и это, предположительно, абстрактный базовый класс, Это означает, что вам нужно реализовать чисто виртуальные функции, которые находятся в этом классе.
Кроме этого я понятия не имею. Одной из идей может быть разделение кода FireBreath и кода вызова COM и создание класса, который вы будете использовать в качестве моста. Вместо того, чтобы вносить изменения в свой объект PluginCore, который уже тесно связан с огненным дыханием, создайте новый объект, который может стать мостом, и сделайте с этим странные вещи.
Просто мысль; Я думаю, что это упростит вещи, потому что тогда вы могли бы задавать вопросы, которые касались бы как стороны COM, так и только FireBreath. Когда вы смешиваете их, вы попадаете в ситуации, когда люди не отвечают, потому что они знают только одно или другое и не знают, как та половина, которую они не понимают, может влиять на вещи =]
Других решений пока нет …