ref struct übergeben klappt nicht
-
Hi,
ich habe folgende Struktur:
ref struct Datensatz{ Int32 Zahl; Single Zahl2; String^ Name; };
diese ist ein Element meiner verketteten Liste:
ref struct Listel{ DBStackel^ nx; DBStackel^ pr; Datensatz Del; };
Nun habe ich eine Funktion, welche die verkette Liste erweitern soll und die Daten der übergebenen ref struct Datensatz. Hier hakt es noch nicht.
trotzdem Code dieser Funktion:ref struct DBStackel^ DB_Kette::Push(Datensatz Datel){ Liste^ ende; liste^ dv; if (anfang == nullptr) { //anfang ist in der Header definiert anfang = gcnew Stackel; ende = anfang; ende->bv = nullptr; } else { ende = anfang; while (ende->nx != nullptr) { ende = ende->nx; } dv = ende; ende->nx = gcnew Listel; ende = ende->nx; ende->bv = dv; } ende->nx = nullptr; ende->Del.Zahl = Datel.Zahl; ende->Del.Zahl2 = Datel.Zahl2; ende->Del.Name = Datel.Name; return anfang; }
Übergebe ich der Funktion Push ein Element wie folgt:
ref struct Listel^ VK::Zuweisung(){ Datensatz Del; Listel^ anf; Del.Zahl = 5; Del.Zahl1 = 5,5; Del.Name = "Name"; anf = Push(Del); return anf; }
Dann erhalte ich für diese Zeile, in der die Push aufgerufen wird folgende Fehlermeldung:
Fehler 1 error C2664: 'VK::Push': Konvertierung des Parameters 1 von 'Datensatz' in 'Datensatz' nicht möglich d:\Progs\VK_cli\VK_cli\VK.cpp 94
kann mir da nicht richtig helfen, da meine beiden Bücher leider nichts in Sachen Struct bei c++/cli hergeben
Hoffe mir kann jemand helfenGruß
ich988
-
Du kommst nicht zufällig von C# her?
ref class
undref struct
sind äquivalent zuclass
,value class
undvalue struct
zustruct
in C#.ref struct
musst du wieref class
per Handle übergeben, da du damit einen Referenztypen definierst. Also:ref struct DBStackel^ DB_Kette::Push(Datensatz ^Datel)
MfG
-
So funktioniert es auch
Komme von C++ dort konnte ich immer einfach ne komplette structur übergeben.vielen Dank