Dekleration einer zusätzlichen Klasse
-
bbb schrieb:
tut mir leid wenn ich mich da ein bisschen blöd anstelle, aber ich habe in Form1 ein Array deklariert:
public: array<PARAMETER^>^ parameter;
wo oder wie kann ich das jetzt anpassen?
Du bist aber auch dämlich, tzzzz
-
geile Antwort! Sieht so aus als ob dus voll drauf hast!
-
Nochmal anders gefragt: Kann ich dann überhaupt noch aus Form1.h auf diese Klasse direkt zugreifen, oder geht das dann nur noch über die source-Datei
-
Du solltest Deklaration ind Implementierung trennen. Das eine gehört in die h-Datei, das andere in die cpp-Datei!
Leider macht dies der WinForms-Design falsch... das ist u.a. *ein* Grund warum C++/CLI vollkommen falsch für sowas ist...
-
OK... aber wie bekomme ich den Eintrag aus dem Konstaruktor von Form1 weg? den kann ich ja schlecht in die cpp Datei auslagern, oder!?
public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); parameter = gcnew array<PARAMETER^>(100); } protected: ...
-
ok, wo ist mein denkfehler?
in Form1.h habe ich jetzt als Konstruktor
Form1(void);
in Form1.cpp habe ich
#include "parameter.h" using namespace test; [STAThreadAttribute] public: array<PARAMETER^>^ parameter; int main(array<System::String ^> ^args) { ... } Form1() { InitializeComponent(); parameter = gcnew array<PARAMETER^>(100); }
und dann habe ich jetzt noch einen neuen Header: parameter.h worin die Klasse deklariert ist:
namespace test { public ref struct PARAMETER { PARAMETER () { xxx = gcnew array<String^>(100); } public: array<String^>^ xxx; }; }
-
Und was geht denn jetzt nicht?
Fehlermeldung?
-
In folgender Zeile in Form1.cpp
#include "parameter.h" using namespace SimPack_auto; [STAThreadAttribute] public: array<PARAMETER^>^ parameter;
kommt folgende Fehlermeldung
error C3145: 'parameter' : global or static variable may not have managed type 'cli::array<Type> ^'
-
Mach parameters zu einem Member deiner Form1 Klasse.
-
danke für die Antwort! wäre super wenn du mir da noch auf die sprünge helfen würdest...Wie mache ich parameter zum member von form1?
Danke
-
Nichts für ungut, aber bevor du mit C++/CLI und WinForms arbeitest, solltest du ersteinmal reines C++ lernen (Du versuchst gerade einen Marathon zu laufen, kannst aber noch nichteinmal krabbeln
-
hab jetzt meine PARAMETER Klasse wie folft deklariert:
public ref struct PARAMETER : public Form1
funktioniert aber trotzdem nicht...
-
Obwohl ich C++/CLI nicht die richtige Sprache halte um mit Programmieren zu beginnen oder überhaupt eine Applikation zur erstellen, bin ich nicht der Meinung, dass man zuerst C++ lernen sollte.
Es ist eine andere Sprache und hat nicht viel gemeinsam. Wozu also C++ lernen?Hier zu noch der bekannte Thread für den Fragesteller:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-263084.htmlMeine Empfehlung ist ganz einfach auf C# umzusteigen.
Simon
-
bbb schrieb:
hab jetzt meine PARAMETER Klasse wie folft deklariert:
public ref struct PARAMETER : public Form1
funktioniert aber trotzdem nicht...
Ist auch komplett falsch.
Hier mal ein Ansatz:
public ref class Form1 : public System::Windows::Forms::Form { private: array<PARAMETER^>^ parameter; public: Form1(void) { InitializeComponent(); parameter = gcnew array<PARAMETER^>(100); } };
-
Danke @theta. Hab den Anatz gleich ausprobiert, aber jetzt kommt wieder folgender Fehler
error C2065: 'PARAMETER' : undeclared identifier
-
Bei der Fehlermeldung wird die Dekleration markiert...
public ref class Form1 : public System::Windows::Forms::Form { private: array<PARAMETER^>^ parameter;
-
theta schrieb:
Hier mal ein Ansatz:
public ref class Form1 : public System::Windows::Forms::Form { private: array<PARAMETER^>^ parameter; public: Form1(void) { InitializeComponent(); parameter = gcnew array<PARAMETER^>(100); } };
Gehört dieser Ansatz in die header- oder in die cpp-Datei? Ich hab ihn in die header Datei geschrieben. Hier kann ich aber parameter.h über include nicht einbinden, oder?
-
alles klar, hab die Fehler gefunden...jetz läuft die Sache wieder!!!
Danke für eure Ausdauernde Hilfe