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:

    1. Mittels typedef wird nur ein anderer Name für einen Typen definiert. Dies hat nichts mit Objekten (bzw. Instanzen) zu tun.
    2. Warum ist die Klasse von MainForm abgeleitet?
    3. 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!



  • @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.


Log in to reply