Hallo, ich wollte einmal fragen, warum Visual Studio 2008 den Code im Header File anlegt, wenn ich ein Ereignis eines Steuerelementes anlege. Bisher war ich der Meinung, dass der Code in die *.cpp Dateien kommt und in den Header Files nur deklarationen usw. stehen. Wie macht ihr denn das? Schreibt ihr wirklich den Code im Header File? Gruß Mario
ja, bei C++-Klassen häufig. Zumindest solange der Code halbwegs kompakt ist. Vorteil: - gleich inline (schnell ist immer toll) - keine Objektdatei oder Lib nötig; mit #include ist alles erledigt Größere Sachen gehören aber in eine .cpp.
@Klaus, danke für die Info. Wie greife ich denn von der *.cpp Datei auf die Steuerelemente zu? Immer wenn ich das versuche bekomme ich eine Fehlermeldung. Gruß Mario
Im CPP File: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Form1::BackColor = Color::Green; } Fehler: Test1.cpp(22) : error C2597: Ungültiger Verweis auf nicht-statischen Member 'System::Windows::Forms::Form::BackColor'
> bekomme ich eine Fehlermeldung.
Ja, das Problem hatte ich auch mal. Genau das gleiche! Ich bekam auch
eine Fehlermeldung! Dann fehlt dir ein Semikolon!
oh Gott, das ist C++ mit .NET-Gedöns. Damit kann ich nix anfangen, sorry.
ybringer schrieb: >> bekomme ich eine Fehlermeldung. > > Ja, das Problem hatte ich auch mal. Genau das gleiche! Ich bekam auch > eine Fehlermeldung! Dann fehlt dir ein Semikolon! Schon vom Laserschwert geblendet? Oder bist du nicht der ybriger aus Beitrag "Laser aus Drucker" ?
> Oder bist du nicht der ybriger aus > Beitrag "Laser aus Drucker" ? Doch doch, das isser schon. Nur ist ein fehlender ; nur eine von 382895 möglichen Fehlerquellen. Aber ich vermute mal, dass die Zeile eher Form1.BackColor = Color::Green; heissen müsste.
Punkt dazwischen habe ich glaub auch schon versucht. Da mekert der Compiler auch
Mario schrieb: > Punkt dazwischen habe ich glaub auch schon versucht. Da mekert der > Compiler auch Und was sagt er so? Oder brabbelt der nur so vor sich hin. Zeig doch mal die ganze Klasse. Aus ein paar Ausschniten kann man des öfteren nur ganz wenig sagen.
Mario schrieb: > Im CPP File: > System::Void button1_Click(System::Object^ sender, System::EventArgs^ > e) > { > Form1::BackColor = Color::Green; > } > > Fehler: > Test1.cpp(22) : error C2597: Ungültiger Verweis auf nicht-statischen > Member 'System::Windows::Forms::Form::BackColor' Im Header muss die Deklaration der Methode stehen
1 | public ref class Form1 : public System::Windows::Forms::Form |
2 | ...
|
3 | private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e); |
4 | |
5 | // Im Cpp dann die Implementation
|
6 | System::Void Form1::button1_Click(System::Object^ sender, System::EventArgs^ e) { |
7 | BackColor = Color::Green; |
8 | }
|
@Arc Net, vielen Dnak für die Info. Das Form1:: vor button1_Click im CPP File hat gefehlt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.