STRUCT (zeiger) - allgemeine Verständnisfrage
-
Also ich habe folgenden Code:
#include ... ... ... ref struct regdaten { static DWORD autostart; static DWORD hilfeassistent; static DWORD taskleiste; static DWORD email; static DWORD interval; static DWORD kalender; static String^ smtp = "default"; static String^ pop3 = "default"; static String^ benutzername = "default"; static String^ benutzerpass = "default"; static String^ anbieter = "default"; static String^ startseite = "default"; } ... ... void registry::registryspeichern (void) { ... ... return; <---- hier soll der pointer übergeben werden
Da ich mich mit Zeigern und Strukturen noch nicht so ganz angefreundet habe, stehe ich hier vor einem großen Problem. Laut meiner Referenz sollte das nun so aussehen:
regdaten p; regdaten *ptr = &p;
Hier erhalte ich aber folgenden Fehler:
Fehler 2 error C3072: Der &-Operator kann nicht auf eine Instanz einer Verweisklasse angewendet werden. c:\Users\Jan\Documents\Visual Studio 2008\Projects\Kinder\Kinder\registry.cpp 118 Fehler 1 error C3699: "*": Diese Referenzierung kann nicht für den Typ "regdaten" verwendet werden. c:\Users\Jan\Documents\Visual Studio 2008\Projects\Kinder\Kinder\registry.cpp 118
Was mache ich hier nun wieder falsch?
-
regdaten^ pregdaten = gcnew regdaten;
Reference (ref) types and value types can only be instantiated on the managed heap, not on the stack or on the native heap.
Es ist zum Mäusemelken. Sobald ich die ENTER Taste gedrückt habe - um den Thread zu senden - findet sich eine Lösung.
...oder auch nicht
Damit ich das richtig verstehe, pregdaten ist jetzt eine Instanz von regdaten? Und wie müsste der Rückgabewert dann lauten?