Funktion findet Variable nicht
-
Hallo,
ich habe in Visual C++ net zu einem Static Text eine Variable (m_sStatusU) zugeordnet.. Im Bereich "OnInitDialog" kann ich auch Wunderbar den Text ändern:m_sStaticU ="test"; UpdateData(FALSE);
jetzt habe ich eine Funktion status:
void status() { int ergebniss; char file1[]= "F:\\testdrive.tst"; ergebniss = PathFileExists(file1); m_sStatusU="blalba"; UpdateData(FALSE); }
leider bekomme ich jetzt folgende Fehlermeldung:
error C2065: 'm_sStatusU' : undeclared identifier
error C3861: 'UpdateData': identifier not found, even with argument-dependent lookupich verstehe leider nicht, warum er jetzt in dieser Funktion nicht auf die Variable zugreifen kann....
-
dehein2 schrieb:
Hallo,
void status() { int ergebniss; char file1[]= "F:\\testdrive.tst"; ergebniss = PathFileExists(file1); m_sStatusU="blalba"; UpdateData(FALSE); }
Die Funktion soll doch zur Dialogklasse gehören, oder?
Dann muss es in etwa so aussehen:
void CMyDialog::status() ^^^^^^^^^^^ { int ergebniss; char file1[]= "F:\\testdrive.tst"; ergebniss = PathFileExists(file1); m_sStatusU="blalba"; UpdateData(FALSE); }
Gruss
-
hmmm..
also ich habe die Funktionen einfach "per Hand" erstellt. Also einfach in die xyzDlg.cpp geschrieben. Bin noch neu in dem Bereich. Ist das falsch. Denn wenn ich jetzt einfach "Cxvy::" vor die Funktionen schreibe funktioniert das ja nicht!?!
-
Hi,
wenn du die Funktion von Hand einfügst und sie zur Klasse gehören soll,
oder wie in Deinem Fall sogar muß, dann erstellst Du die Memberfunktion
entweder mit den Klassenassistent, oder du fügst den Prototype in den
Klassenheader und die Implementierung in die cpp-Datei.Header:
class CMyDialog { public: void Status(); };
Datei:
void CMyDialog::Status() { // Zugriff auf Klassenvariablen und Funktionen }
-
Ähm, entweder bin ich im falschen Film oder die Membervariable heisst in der OnInit-Funktion 'm_sStaticU' und in der anderen 'm_sStatusU'
-
Danke, das Funktioniert super. Jetzt nur noch eine kleine Frage
ich rufe die Funtion ja jetzt weiter mit
status();
aus... ist es denn dann "richtiger" sie mit Cxyz::status; aufzuriufen?vielen dank
-
dehein2 schrieb:
aus... ist es denn dann "richtiger" sie mit Cxyz::status; aufzuriufen?
In diesem Fall nicht. Das macht man nur wenn man in abgeleiteten Klassen
eine Methode überschreibt und dann die Funktion der Basisklasse aufrufen möchte.