CLI Threading Probleme mit extending Class;
-
Hallo zusammen,
ich habe ein Problem mit meinem C++ CLI GUI Projekt.
Ich habe meine MainForm Klasse, die die GUI enthält.
Da ich in dieser GUI eine asynchrone Serielle Schnittstelle Ausgabe brauche und diese mit CLI nur mit Threading einer Klasse möglich ist, habe ich die Serielle Schnittstelle in eine weitere Klasse geoutsourced habe.Das sieht dann folgender maßen aus:
// in der GUI class SerialP^ SerialConnection = gcnew SerialP(); // hier die Klasse public ref class SerialP : public MainForm { public: SerialPort Serial; private: typedef MainForm super; public: SerialP(void){ } //Hier kommt code }
Mit dem Typedef versuche ich auf meine GUI Instanz (die aktiv verwendete) zu kommen und den Text aus der Seriellen Schnittstelle ausgeben zu können.
Dieses Typedef wird wahrscheinlich aber das Problem sein, warum ich den Fehler:
Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
(Tritt in der Zeile: "SerialP^ SerialConnection = gcnew SerialP();" auf)Ich nehme an, das hier eine Endlosschleife erstellt wird und will deshalb nachfragen, wie ich das Problem lösen kann ?
Danke für eure Hilfe.
-
Sorry, aber da paßt ja kaum etwas bei deinem Code:
- Mittels
typedef
wird nur ein anderer Name für einen Typen definiert. Dies hat nichts mit Objekten (bzw. Instanzen) zu tun. - Warum ist die Klasse von
MainForm
abgeleitet? - Der Fehler kommt, weil der Compiler die Codedatei von oben nach unten abarbeitet und in der Zeile die Klassendefinition noch nicht bekannt ist (du mußt also die Zeile unter die Klassendefinition packen). Oder wenn du diese in eine eigene Datei auslagerst, dann mittels
#include
einbinden.
PS: Und es gibt ein extra C++/CLI Unterforum hier...
Und lies dir auf jeden Fall den dortigen Artikel Windows Forms und Visual C++ MACHT KEINEN SINN! durch!
- Mittels
-
@Wolly300 sagte in CLI Threading Probleme mit extending Class;:
will deshalb nachfragen, wie ich das Problem lösen kann ?
Es scheinen Dir absolute Grundlagen von C++ zu fehlen. Ich würde Dir ein Lehrbuch empfehlen (nein, mit C++/CLI anzufangen ist keine gute Idee). Bzw. ein Lehrbuch zu C# wenn Du .net-Zeugs machen willst.