Я выставляю некоторые типы данных ISO C ++ для .Net (моно в Linux, если быть точным).
В целях краткости я буду ссылаться на C # в своем вопросе, хотя мой вопрос касается всех языков .Net (причем C # и VB.Net являются моими целевыми языками).
До сих пор я работал над тем, как представить типы данных ISO C ++ в классах C # для использования в моно - благодаря некоторым умным парням из SO.
Пока единственная проблема - как обращаться с обратными вызовами C ++. Я считаю, что в языках .Net (C # и Vb.Net) «делегаты» являются эквивалентом обратного вызова.
На данный момент придерживаясь C #, кто-нибудь может порекомендовать способ регистрации функций делегирования C # в моем коде ISO C ++.
Код ISO C ++ является библиотекой уведомлений, и я хочу иметь возможность "отправлять" уведомления в моно-фреймворк (т. Е. Делегаты C # в этом случае).
Мое основное предположение состоит в том, что механизм / шаги для реализации этого будут одинаковыми для языков .Net - мне просто нужно будет кодировать фактических делегатов на выбранном языке .Net - верно ли это предположение?
И последнее, но не менее важное, это вопрос безопасности потоков. Базовый код ISO C ++, который я раскрываю для .Net (моно, если быть более точным), является и ретрантным, и потокобезопасным. Должен ли я сделать что-нибудь «дополнительное» для вызова делегата .Net из моего кода ISO C ++?