Auf die HauptDialog Klasse zugreifen geht leider nicht



  • Hallo leute

    Ich versuche von einer neben klasse auf die Funktionen der HauptDialog klasse
    zuzugreifen.

    in V6 konnte ich ohne probleme auf die HauptDialog klasse zugreifen.
    Mit V.NET 2003 bekomme ich immer eine fehler meldung.

    #pragma once
    #include "c:\dokumente und einstellungen\can\fkdirectmidi1\directmidi\cmidipart.h"

    class CDirectMidi2Dlg;

    class CMusicReceiver :
    public CReceiver
    {
    public:
    CMusicReceiver(void);
    ~CMusicReceiver(void);

    CDirectMidi2Dlg* Dialog;

    void RecvMidiMsg(REFERENCE_TIME rt,DWORD dwChannel,DWORD dwBytesRead,BYTE *lpBuffer) {};
    void RecvMidiMsg(REFERENCE_TIME rt,DWORD dwChannel,DWORD dwMsg);

    void SetDialog(CDirectMidi2Dlg* dialog) { Dialog = dialog; };

    //////
    In .CPP

    void CMusicReceiver::RecvMidiMsg(REFERENCE_TIME lprt,DWORD dwChannel,DWORD dwMsg)
    {
    BYTE Command,Channel,Note,Velocity;
    MidiEvent mMsg;
    CInputPort::DecodeMidiMsg(dwMsg,&Command,&Channel,&Note,&Velocity);

    if ((Dialog&&Command == NOTE_ON) && (Velocity > 0)) //Channel #1 Note-On
    {
    Dialog->iZahl=15; // Fehler!!
    }

    /////
    Fehler Meldung
    error C2027: Verwendung des undefinierten Typs "CDirectMidi2Dlg"
    error C2227: Der linke Teil von '->iZahl' muss auf Klasse/Struktur/Union zeigen

    CDirectMidi2Dlg* Dialog ist doch definiert und
    der Linke teil von iZahl ist doch eine Struktur

    was stimmt da nicht?

    wenn ich mit dem pfeil op auf Dialog zugreife dann zeigt V.NET die liste mit den ganzen funktionen "Dialog->"
    Alo muss es doch definiert sein
    ich verstehes nicht 😞

    Danke im vorraus für Hilfe

    Grüße can



  • du kannst warscheinlich den dialog nicht als mebervariable initialisieren, so gehts:

    http://www.c-plusplus.net/forum/viewtopic.php?t=91938&highlight=dialogfeldklasse+esco

    Esco



  • Danke Esco für die schnelle antwort!!

    Ich habe es auch so gemacht wie es in deinem link steht

    class CDirectMidi2Dlg; // Haupt Dlg Klasse

    class CMusicReceiver : public CReceiver

    Aber ich bekommer immer noch den fehler 😞
    liegt es an V.Net



  • ja also die header des dialogs ist in der cpp in der der dialog aufgerufen wird, eingebunden? hast mal alles neu erstellt?
    ansonsten koennen dir vielleicht die ausm .NET forum weiterhelfen.

    Esco



  • Esco schrieb:

    ansonsten koennen dir vielleicht die ausm .NET forum weiterhelfen.

    Ne, die Frage hat dort nichts verloren.



  • can28 schrieb:

    in V6 konnte ich ohne probleme auf die HauptDialog klasse zugreifen.
    Mit V.NET 2003 bekomme ich immer eine fehler meldung.

    dEUs schrieb:

    Esco schrieb:

    ansonsten koennen dir vielleicht die ausm .NET forum weiterhelfen.

    Ne, die Frage hat dort nichts verloren.

    hae?

    Esco



  • Esco schrieb:

    can28 schrieb:

    in V6 konnte ich ohne probleme auf die HauptDialog klasse zugreifen.
    Mit V.NET 2003 bekomme ich immer eine fehler meldung.

    dEUs schrieb:

    Esco schrieb:

    ansonsten koennen dir vielleicht die ausm .NET forum weiterhelfen.

    Ne, die Frage hat dort nichts verloren.

    hae?

    Esco

    Ganz einfach: Es liegt nicht daran.
    Und selbst wenn:

    C# und .NET-Forenbeschreibung schrieb:

    Fragen zur neuen Sprache C#, zu den Funktionen und Abläufen, Anwendungen und Befehlen. Außerdem der Anlaufpunkt zu Fragen rund um die .net-Plattform. Fragen zu den IDEs gehören nicht hier rein (Bedienung/Installation/... von VC++.NET/2003 -> VC++ Forum).



  • Nein Esco den header habe ich nicht in CMusicReceiver.cpp eingebunden sonder in CMusicReceiver.h
    etwa so:
    CMusicReceiver.h
    class CDirectMidi2Dlg;

    Nicht so:
    CMusicReceiver.h
    #include "DirectMidi2Dlg.h"

    wenn ich in CMusicReceiver.cpp #include "DirectMidi2Dlg.h"
    schreibe bekomme ich diesen fehler

    error C2065: 'IDD_DIRECTMIDI2_DIALOG': nichtdeklarierter Bezeichner

    wie ich es auch mache es geht nicht 😞



  • ja wenn da nix included wird, woher soll er es dann kennen?

    du musst auf jeden fall die header des dialogs in dem file includen, in dem du ein objekt des dialogs erstellst.

    und zwar nur die header in der cpp und sonst erstmal nirgends.

    Esco



  • Danke Esco !!!

    Ich habe die dateien .h und .cpp neu angelegt und jetz gehts

    danke noch mal 🙂

    Grüße Can


Anmelden zum Antworten