Funktion aus CView in Klasse aufrufen



  • Hi!

    Ich habe ein neues Projekt erstellt (MFC, einfaches Dokument) und eine neue Klasse hinzugefügt. Wie kann ich aus dieser neuen Klasse eine Funktion aus dem CView des Projektes aufrufen? Wenn ich es über einen Zeiger auf CView versuche kommen folgende Fehler:

    error C2143: Syntaxfehler: Es fehlt ';' vor '*'
    error C2501: 'CTestView::CTestDoc': Fehlende Speicherklasse oder Typspezifizierer
    error C2501: 'CTestView::GetDocument': Fehlende Speicherklasse oder Typspezifizierer

    (Versuche ich die gleiche Vorgehensweise mit einem Zeiger auf CDoc funktioniert es, ich kann also Funktionen aus dem CTestDoc aufrufen, jedoch nicht aus CTestView)

    Danke Im Voraus!



  • Du musst dafür sorgen das der Zeiger auf eine Gültige Instanz
    zeigt, dann müsste es klappen, allerdings kannst du natürlich
    nur Funktionen die pulbic sind aufrufen.

    Devil



  • Das ist meine neue Klasse

    #include "StdAfx.h"
    #include ".\test.h"
    #include "funkView.h"
    
    CTest::CTest(CfunkView* pView)
    {
    	m_pView = pView;
    }
    
    CTest::~CTest(void)
    {
    }
    
    void CTest::rufeFunktionAuf()
    {
    	m_pView->testFunk();
    }
    

    Und das der Header dazu

    #pragma once
    
    class CfunkView;
    
    class CTest
    {
    public:
    	CTest(CfunkView* pView);
    	~CTest(void);
    
    public:
    	CfunkView* m_pView;
    	void rufeFunktionAuf();
    };
    

    Die Klasse soll also testFunk in CfunkView aufrufen.
    Dabei kommen die oben genannten Fehler.
    Benutze ich aber exakt den gleichen Aufbau mit CfunkDoc funktioniert es und wird ordnungsgemäß kompiliert. 😕


Anmelden zum Antworten