2009-04-25 3 views
0

Ich versuche herauszufinden, wie ein boost :: function member (verwendet als Ereignisrückruf) einer nicht verwalteten Klasse mit einem C++/CLI-Klassenereignis zu umbrechen. Ich habe keine Kontrolle über die nicht verwaltete Klasse. Alles, was ich tun kann, ist herauszufinden, wie man die C++/CLI-Klasse richtig schreibt.Wrapping Boost :: Funktion mit einem C++/CLI-Klassenereignis

Hier ist das Beispiel nicht verwaltete Klasse:

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

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

ich viele Dinge ausprobiert habe, aber ich weiterlaufen Probleme. Ich bin mir sicher, dass es einfacher ist als es scheint. Jede Hilfe würde sehr geschätzt werden!

Antwort

0

CLI wird wahrscheinlich nicht zulassen, dass Sie eine boost :: -Funktion als statisches Element deklarieren. Machen es einen Zeiger:

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

Dann Zuweisen/Freisetzen in den Konstruktor und finalizer und nenne es mit (* XChanged) (ARG);

Verwandte Themen