Eine Funktion in einer Funktion aufrufen



  • gabele schrieb:

    Deswegen ist es eine Fensterklasse, oder?

    Keine Ahnung. Aus dem gezeigten Code kann man das nicht erkennen. Nur du kennst diese Klasse. Ist das alles, was du mit der Klasse machst? Wie sieht die Definition der Klasse aus?



  • wie ist denn die klassendeklaration von CSpeicher ?
    wenn diese von CDialog oder aehnliches ableitet ist es eine fensterklasse {o;



  • Ja denk schon das CSpeicher von CDialog abgeleitet ist, da die Funktion "void CSpeicher::ReadWriteEepromManuell(void)" in der dialog.cpp-Datei steht und in der dialog.h-Datei folgendes drin steht:
    class CSpeicher : public CDialog
    { ...

    die FUnktion die ich manuell starte steht in der MainFrm.cpp.
    Sorry das ich so schwer von begriff bin.



  • Also da mir so keiner weiter helfen kann, beschreib ich mein Problem nochmal anderst.
    Ich kann in einer Funktion eine andere Funktion aufrufen, wenn diese sich in der gleichen cpp-Datei befindet. Ist die aufzurufende Funktion aber in einer anderen cpp-Datei dann bekomme ich einen Assertion Failed (wie im ersten Beitrag beschrieben).
    Eiegentlich dürfte das doch nicht so schwierig sein, oder?
    Wäre sehr nett, wenn mir jemand helfen könnte.

    Gruß Gabele



  • gabele schrieb:

    Also da mir so keiner weiter helfen kann, beschreib ich mein Problem nochmal anderst.

    http://www.duden.de/suche/index.php?begriff=anderst&bereich=mixed&pneu=

    gabele schrieb:

    Eiegentlich dürfte das doch nicht so schwierig sein, oder?

    Das Problem ist, dass du da keine Funktion hast, sondern eine Methode einer Dialogklasse. Und da diese Methode offenbar versucht, auf die Steuerelemente des Dialogs zuzugreifen, kannst du nicht einfach eine Instanz dieser Klasse erzeugen und die Methode aufrufen, sondern musst entweder den Dialog ordentlich darstellen oder die Funktionalität vom UI entkoppeln.



  • HI,
    also erst mal merci MFK, dank dir weiß ich jetzt das ich die ganze Zeit das Falsche gesucht hab. Aber leider versteh ich nicht alles was du mir sagen willst.
    Was meinst du mit, die Funktionalität vom UI entkoppeln?
    Mit Dialog darstellen meinst du den Programmiercode posten, oder?

    Gruß gabele



  • Zeig bitte mal die relevanten Teile der Definition von CSpeicher und CSpeicher::ReadWriteEepromManuell.



  • und ich möchte eben diese Methode aus einer anderen cpp-Datei starten.
    Ich mach das so:
    CSpeicher cSp;
    cSp.ReadWriteEepromManuell();
    und sobald er das aufruft, kommt der Assertion Failed.
    Danke für deine Hilfe!



  • Siehst du die Aufrufe von GetDlgItem?

    Du greifst in der Methode auf die Steuerelemente IDC_EDIT1 und IDC_LIST1 zu. Wie soll das funktionieren, wenn der Dialog nicht angezeigt wird?

    Soll der Dialog denn an dieser Stelle angezeigt werden?

    P.S.: Und benutzt bitte cpp-Tags, wenn du Code postest.



  • achso ja klar! Jetzt hab ich´s hinbekommen.
    Vielen Dank!

    Gruß gabele


Anmelden zum Antworten