У меня есть рабочий код на C ++, который я нахожусь в процессе создания оболочки в C ++ / CLI, поэтому я могу использовать его в C #.
Один из методов в коде C ++ - установить функциюуказатель.Указатель на функцию указывает на класс, который наследуется от виртуального класса.
Это виртуальный класс:
class Transmitter
{
public:
virtual bool Transmit(uint64_t desintation, uint8_t message) = 0;
};
Для установки указателя функции есть функция:
SetOutgoingFunction(Transmitter* const transmitter)
В C ++, предполагая, что TransmitterObject является классом, который наследуети переопределяя функцию Transmit, я устанавливаю указатель, используя:
SetOutgoingFunction(&TransmitterObject)
Все это прекрасно работает в области C ++.Я провел много исследований, пытаясь понять эту оболочку, вот несколько хороших ресурсов: codeproject и microsoft .
В оболочке я нахожусь в точке, где у меня есть указатель на функцию, которая готова к передаче в SetOutgoingFunction.Проблема в том, что указатель относится не к классу Transmitter.CLI не позволяет мне наследовать от класса Transmitter, поскольку это не класс ref.
Что мне делать?
Я мог бы изменить код C ++, чтобы использовать другой тип указателя на функцию,хотя я верю, что способ, которым я это настроил, - правильный путь.Если это так, как мне приспособиться к этому на уровне C ++ / CLI?