Обертывание boost::function с событием класса C++/CLI

Я пытаюсь понять, как обернуть член boost::function (используемый как обратный вызов события) неуправляемого класса с событием класса C++/CLI. У меня нет контроля над неуправляемым классом. Все, что я могу сделать, это выяснить, как правильно написать класс C++/CLI.

Вот пример неуправляемого класса:

class X
{
public:
    boost::function<void (double)> XChanged;;

    void Set(double x)
    {
        XChanged(x)
    }
};

Я пробовал много вещей, но я продолжаю сталкиваться с проблемами. Я уверен, что это проще, чем кажется. Любая помощь будет принята с благодарностью!


person Community    schedule 25.04.2009    source источник


Ответы (1)


CLI, вероятно, не позволит вам объявить boost::function как статический член. Сделайте это указателем:

boost::function<void(double> *XChanged;

Затем выделите/освободите в конструкторе и финализаторе и вызовите его с помощью (*XChanged)(arg);

person Nathan Monteleone    schedule 19.08.2010