MFC ActiveX Komponente



  • Ich bin eigentlich .net/C# Entwickler und habe von MFC wenig Erfahrung. Im aktuellen Projekt muss ich trotzdem nebenbei eine bestehende MFC ActiveX Komponente (VS2010) weiter entwickeln.

    In meiner ActiveX Klasse 'CTestDialogCtrl' (erbt von 'COleControl') befinden sich die Funktionen ActiveXCtrl -> Hauptapplikation (Event Map) und Hauptapplikation -> ActiveXCtrl (Dispatch Map).

    Die Klasse 'CNode' soll dem Hauptdialog die Funktionalität zur Verfügung stellen. Ich habe das Observer Pattern angewendet (CNode enthält die Funktionen ActiveX-Ctrl -> Hauptapplikation, über CNodeObserver wird dem Hauptdialog die Funktionalität Hauptapplikation -> ActiveXCtrl zur Verfügung gestellt).

    Nun mein Hauptproblem: wie hat 'CNode' Zugriff auf die Funktionen (ActiveX-Ctrl -> Hauptapplikation) von 'CTestDialogCtrl'? Sämtliche Versuche, Referenzen auf Instanzen weiterzugeben scheiterte mit Compilerfehlern.

    Das Ganze tönt sehr komplex. Ich habe ein simples Class Diagram, kann es aber nicht attachen.

    Besten Dank für Tipps!!

    Gruss
    Marc



  • Hier noch ein Lösungsversuch, der scheiterte:

    'CTestDialogCtrl' erzeugt 'CNode' und übergibt die Referenz mit this. 'CTestDialogCtrl' besitzt eine Referenz auf 'CNode' und 'CNode' besitzt eine Referenz auf 'CTestDialogCtrl'.

    Folgender Fehler tritt auf beim Builden:
    error C2061: syntax error: identifier 'CTestDialogCtrl'

    class CNode
    {
    public:
    CNode(CTestDialogCtrl *testDlgCtrl); // Fehlerzeile!
    :

    Vielleicht hilft dies einem MFC Crack weiter?

    Vielen Dank für Tipps!!

    Gruss
    Marc


Anmelden zum Antworten