Probleme mit CString in Klasse
-
Hi
Also ich hab folgende klasse:
//test.h class test { private: CString text; public: void SetText(CString text); CString GetText(); }; void test::SetText(CString text) { this->textt = text; } CString test::GetText() { return this->text; }
Wenn ich diese in einem "MFC Application" Projekt in VC++.NET 2003 verwende funktioniert alles wunderbar. Wenn ich dieselbe klasse jedoch in einem "Windows Forms Designer (.NET)" Projekt verwenden will bekomm ich ne schöne liste mit Fehlermeldungen.
Ich verwende genau den selben code. Die Form ist immer jeweils mit 2 Buttons angelegt. Einer für "SetText" und einer für "GetText".Hier die Fehlermedlungen:
e:\Code\T1\test.h(4) : error C2146: syntax error : missing ';' before identifier 'text'
e:\Code\T1\test.h(4) : error C2501: 'test::CString' : missing storage-class or type specifiers
e:\Code\T1\test.h(4) : error C2501: 'test::text' : missing storage-class or type specifiers
e:\Code\T1\test.h(6) : error C2061: syntax error : identifier 'CString'
e:\Code\T1\test.h(7) : error C2146: syntax error : missing ';' before identifier 'GetText'
e:\Code\T1\test.h(7) : error C2501: 'test::CString' : missing storage-class or type specifiers
e:\Code\T1\test.h(7) : warning C4183: 'GetText': missing return type; assumed to be a member function returning 'int'
e:\Code\T1\test.h(10) : error C2065: 'CString' : undeclared identifier
e:\Code\T1\test.h(10) : error C2146: syntax error : missing ')' before identifier 'text'
e:\Code\T1\test.h(10) : error C2761: 'void test::SetText(void)' : member function redeclaration not allowed
e:\Code\T1\test.h(10) : error C2059: syntax error : ')'
e:\Code\T1\test.h(11) : error C2143: syntax error : missing ';' before '{'
e:\Code\T1\test.h(11) : error C2447: '{' : missing function header (old-style formal list?)
e:\Code\T1\test.h(15) : error C2143: syntax error : missing ';' before 'test::GetText'
e:\Code\T1\test.h(15) : error C2501: 'CString' : missing storage-class or type specifiers
e:\Code\T1\test.h(15) : error C2371: 'CString' : redefinition; different basic types
e:\Code\T1\test.h(17) : error C2039: 'text' : is not a member of 'test'
e:\Code\T1\test.h(2) : see declaration of 'test'Ich nehme an der kommt mit dem "CString" nicht zurecht.
Ich hoffe ihr könnt mir helfen.
-
Ja, es fehlt der Verweis in Form von includierten Headern auf die CString Klasse. Aber wenn du mit .Net arbeitest, solltest du auch die .Net Klassen verwenden! Und dort gibts auch ne bessere String Klasse, bzw. ist String ja dort ein richtiger Datentyp!
-
sry, mit deiner Antwort komm ich nicht so ganz zurecht. Wie müste der Code denn aussehen damits Funktioniert?
-
Byte3 schrieb:
Ich nehme an der kommt mit dem "CString" nicht zurecht.
Super gedanke. Wenn er damit nicht klar kommt, warum nimmst du ihn dann? Ersetze CString mit string und guck dann mal.
Des Weiteren solltest du dich dann mal ein bisschen mit den .Net Grundlagen beschäftigen.