Funktion aufrufen



  • Hi Leute!

    Ich grade aufm Schlauch.

    Kann mir einer von euch mal sagen wie ich eine Funktion aus der View-Klasse in der App-Klasse aufrufen kann. Die Funktion ist eine virtual viod -Funktion.

    Danke



  • AfxGetApp()->MyFunc();



  • Hi CMatt

    Dein aufruf ist genau falschrum damit kann ich eine App-Funktion in der View-klasse aufrufen ich will es aber genau umgedreht machen.



  • CMatt schrieb:

    AfxGetApp()->MyFunc();

    Er will eine Funktion aus seiner View Klasse von der App-Klasse aus aufrufen 😉



  • msdn:

    CMDIFrameWnd *pFrame = 
                 (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
    
    // Get the active MDI child window.
    CMDIChildWnd *pChild = 
                 (CMDIChildWnd *) pFrame->GetActiveFrame();
    
    // or CMDIChildWnd *pChild = pFrame->MDIGetActive();
    
    // Get the active view attached to the active MDI child
    // window.
    CMyView *pView = (CMyView *) pChild->GetActiveView();
    

    pView->myFunction();



  • das funktioniert nicht da ich die Viewfunktion in einer dll habe sie soll auch nichts anzeigen nur muss ich daten von einer Kammera holen die nur mit der View-Klasse bekomme. Als kein SDI oder MDI



  • hierzu fällt mir nur ein: waas?? 😕

    kannst du deine situation mal genauer beschreiben. und falls das so etwas grosses ist, dann nimm dir doch bitte die zeit um ein paar absätze mehr zu verfassen. denn schliesslich suchst du hier nach einer antwort, die ebenfalls aus mehr bestehen soll, oder nicht?



  • Also ich habe eine Kammera die ich mit Hilfer der DLL in ein anderes Programm einbinden soll. Für die Kammera benötige ich die CView klasse bzw eine selbsterstelte Tochter-Klasse der CView. Da die DLL schnittstelle aber nur funktionen aus der APP-Klasse started muss ich jetzt aus der App-Klasse die Funktion in der View-Klasse starten und das ganze geschieht in einer DLL.

    Mein momentaner versuch:

    dlltestView pView;
    pView.OnInitialUpdate();
    

    und die Fehler:

    Debg Assertion Failed!
    
    Program: C:\..\..\DLLOffen.exe
    File: afxwin2.inl
    Line: 126
    

Anmelden zum Antworten