Mehr als 1 Form
-
Hallo Tim2m,
du hast einen typischen C++ Cross-Include Fehler drin.
Ich nehme mal an, du hast deine Forms nicht in Implementations- und Header-Dateien unterteilt? (Das ist einer der Gründe warum der Form-Desinger bei C++/CLI völlig daneben ist, da er standardmäßig nur eine Headerdatei anlegt!).Entferne also die Form-Includes aus der stdafx.h und binde sie manuell richtig ein!
Und auch wenn es schon zig-mal gepostet wurde:
Nimm für GUI-Programmierung C# anstatt C++/CLI, s.a. Windows Forms und Visual C++ MACHT KEINEN SINN!
-
Ja meine Header- und Implementationsdateien sind nicht getrrennt was die Formen betrifft. Aber was meinst du jetzt mit manuell richtig includieren. Falls du meinst das ich z.B. in der Form1.h die 2. Form includieren soll und umgekehrt das hab ich schon probiert und da kommt der gleiche fehler. Soll ich die .cpp-dateien der Formen von den headerdateien trennen?
-
Soll ich die .cpp-dateien der Formen von den headerdateien trennen?
Ja.
-
Hilft auch nicht weiter. Der gleiche Fehler immer noch. Und der Fehler kommt ja auch nur wenn ich diesenn Code bei 2 Formen reinschreib bzw. auf mehr als 1 Form verweis. Sonst geht das alles.
-
Tim2m schrieb:
Hilft auch nicht weiter. Der gleiche Fehler immer noch. Und der Fehler kommt ja auch nur wenn ich diesenn Code bei 2 Formen reinschreib bzw. auf mehr als 1 Form verweis. Sonst geht das alles.
Ich weiss jetzt halt nicht was Du gemacht hast... Zeige den Code.
-
ICh hab halt die Haupt.cpp und die Form1.cpp in einen anderen ordner geschoben und Haupt.h in Form1.h direkt includier sowie in Haupt.h Form1.h includiert.
Oberster ausschnitt Form1.h:
#pragma once #include "Haupt.h"
Oberster ausschnitt Haupt.h:
#pragma once #include "Form1.h"
Ausserdem hab ich die includierungen in der Stdafx.h gelöscht
-
Hallo Tim2m,
du darfst dann nur in den CPP-Dateien die anderen Header 'include'n.
Und in den Headerdateien dann nur Vorwärtsdeklarationen (forward declarations) verwenden (außer du benötigst die komplette Klassendefinition z.B. beim Vererben oder als eingebetteter Member, dann aber nur in eine Richtung includen).Bis du dir wirklich sicher, daß du dir C++/CLI antun willst und nicht entweder natives C++ oder aber entspannte GUI-Programmierung mittels C# ???
-
Ja eigentlich wollte ich damit erstmal weiter machen.
Wenn ich das in den .cpp dateien includiere gibt es den gleichen fehler. Kann ich formen auch vorwärts deklarieren und wenn ja wie? Will endlich eine lösung dafür finden. Ich hab schon so viele Projekte wegen diesen einen fehler verworfen.
-
Guck hier mal, wenn Du damit nicht zurecht kommen solltest, sag kurz bescheid.
http://www.c-plusplus.net/forum/260545?highlight=form1+form2
Gruß
Doug_HH
-
Danke, Danke, danke. Endlich funktioniert es. Vielen Dank für eure Hilfe. So wie in den Link beschreiben die Button-Funktion in die .cpp verschieben und schon funktionierts.