String an eine Funktion in einer Klasse übergeben
-
Habe ein Win32-Konsolenprojekt. Nutze VisualC++ in VS.NET 2003.
String^ ist ihm somit nicht bekannt.
-
Auch wenn's Visual Studio .NET ist, ist ein Win32-Projekt noch lange nicht in C++/CLI verfasst
(EDIT: Und unter Win32 mit C oder C++ gibt es auch garkeine Klasse String. Woher hast Du die?)
-
Axel_M0310 schrieb:
Habe ein Win32-Konsolenprojekt. Nutze VisualC++ in VS.NET 2003.
String^ ist ihm somit nicht bekannt.Dann lass einfach das "include" weg.... und poste nächstesmal die *genaue* Fehlermeldung!
-
Wohin sollte ich meinen Beitrag sonst posten? Im Unterforum "Programmiersprachen->C++" bin ich auf dieses Unterforum verwiesen worden.
Das Projekt ist eine "verwaltete C++ Anwendung" in VS.NET 2003.
Habe jetzt #include "String.h" auskommentiert und String* mit String^ ersetzt.Folgende Fehler treten auf:
1-> Syntaxfehler: Bezeichner 'String'
2-> Ungültige Verwendung des verwalteten Typs 'System::String'; haben Sie eine '*' vergessen?
3-> Syntaxfehler: Es fehlt ')' vor '^'
4-> Syntaxfehler: Es fehlt ';' vor '^'Liege ich vielleicht auf dem falschen Weg? Wie würdet ihr einen String (kein char!) an einen Funktion einer Klasse übergeben?
-
In VS2003 gibt es keine ^, der spaß kam erst später, mit VS2005.
System::String* wäre da schon richtig. Poste bitte die Fehlermeldung von deinem ersten Post.
-
Hier sind die Fehlermeldungen, wenn "#include 'String.h' wieder drin ist und ich String* statt String^ benutze:
1->Syntaxfehler: Bezeichner 'String' 2->PrintStringValue(System::String __gc *)': Überladene Memberfunktion nicht in 'TestKlasse' gefunden
Er kreidet damit die Funktionsdeklarationen im der Header und in Quelldatei an.
3-> 'TestKlasse::PrintStringValue': Funktion akzeptiert keine 1 Argumente
Fehler bezieht sich auf den den 1. Funktionsaufruf der Funktion aus der Klasse.
-
Hallo,
wie ist denn die Funktion im Headerfile der Klasse deklariert?
Gruss
foodax
-
void PrintStringValue(String* testValue);
-
Es scheint ein wenig so zu sein, das es (woher auch immer) noch eine Klase gibt die String heisst. Versuche mal String explizit durch System::String anzusprechen.
-
HURRA! HURRA! Ja, es war nur das einzelne Wort "System::". Mit "System::String*" in der Funktionsdeklaration in der Headerdatei der Klasse hat es dann geklappt!
Vielen Dank Knuddelbaer und euch anderen fürs aktive mithelfen! Vielen DANK!