VC++ 2008: Aufrufendes Objekt an Konstruktur einer neuen Klasse übergeben
-
Hallo!
Bin relativ unerfahren mit c++ und habe folgendes Problem:
Ich möchte von einer windows Form "Form1" aus eine Instanz einer neuen Komponentenlasse "NeueKlasse" erzeugen und dem Konstruktor der neuen Klasse eine Referenz zum aufrufenden Objekt übergeben, so dass ich von dem neu erzeugten Objekt aus auf öffentliche Methoden meines Form1 objekts zugreifen kann.
Habe es folgendermaßen Probiert
//----------------------------------------------------- Datei Form1.h
// Erzeugung eines neuen Objekts im Konstruktor von Form1
NeueKlasse^ neu = gcnew NeueKlasse(this);
....
// öffentliche Methode:
public: System::Void setWert1(System::Int32 wert){this->vScrollBar1->Value=wert;
}//----------------------------------------------------- Datei NeueKlasse.h:
#include "Form1"
...
// Konstruktor neue klasse
public:
NeueKlasse(Form1^ aufrufer)
{
InitializeComponent();// jetzt soll der zugriff auf die öffentliche methode des aufrufenden objekts erfolgen
aufrufer->setWert1(1);
}
NeueKlasse(System::ComponentModel::IContainer ^container)
{container->Add(this);
InitializeComponent();
}Ich bekomme beim compilieren folgende Fehlerausgabe
error C2061: Syntaxfehler: Bezeichner 'Form1'
error C2065: 'aufrufer': nichtdeklarierter Bezeichner
error C2227: Links von "->setwert1" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
error C2664: Konvertierung des Parameters 1 von 'Projekt::Form1 ^const ' in 'System::ComponentModel::IContainer ^' nicht möglich
Es ist kein benutzerdefinierter Konvertierungsoperator verfügbar, oder
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.momentan stehe ich etwas auf dem Schlauch...
Wollte die Funktionalitäten der neuen Klasse nur ungern in meine Form1 einfügen...Danke im Voraus!
Gruß
DaFreek
-
Probier mal #include "Form1**.h**"
SimonBTW: Du programmierst da C++/CLI, nicht C++. Das ist ein Unterschied!
-
Schreib mal...
#include "Form1.h"
Bitte benutze Code-Tags, lässt sich netter lesen.
Gruß, Doug_HH
Edit/ Zu spät