CString wird nicht übergeben
-
Hallo zusammen, ich habe folgendes Billigprogramm geschrieben:
#include "stdafx.h"
#include <cstring>
#include <iostream>
#include "atlstr.h"using namespace std;
class warumklapptsnicht {
public:
CString ruf;
void rufen(CString);
};
void warumklapptsnicht::rufen(CString test) { cout << test;};
void guckindieluft (CString a) { cout << a; }
int _tmain(int argc, _TCHAR* argv[])
{warumklapptsnicht daniel;
daniel.ruf="hui";
daniel.rufen("teasdfst");guckindieluft("luft");
return 0;
}Problem: Statt des Inhalts von test respektive a wird immer eine 8stellige Zahlenkombination ausgegeben. Woran könnte das liegen? Header falsch eingebunden, oder kann man CString-Objekte grundsätzlich nicht als Parameter übergeben? MSDN ist leider keine Hilfe
Viele Grüße
Daniel
-
Hm, weil cout nicht mit Objekten des Typs CString umgehen kann?
Es gibt Dir die Adressen der Objekte zurück.Probier mal folgendes:
cout << test.GetString; cout << a.GetString;
-
gibt ebenfalls die adresse zurück, eine möglichkeit wie ich das mit printf ausgeben kann? danke!
-
Sollte wohl "GetString()" heißen (fehlende "()")
-
hatte das schon miteinkalkuliert und stillschweigend korrigiert, sonst kompiliert er erst gar nicht, aber es kommt nur die Adresse, nicht der Inhalt...
-
gibt ebenfalls die adresse zurück, eine möglichkeit wie ich das mit printf ausgeben kann? danke!
Wie wärs mit
printf("%s",ruf);
-
Thema zum Nachschlagen: Überladen von Operatoren, in dem Fall Operator '<<' ist schuld. Für Ihn ist Adresse von Objekt von CString passende Operator.
Mit z.B "cout << ( LPCTSTR ) test;" soll es gehen.
-
Fiesek schrieb:
Hm, weil cout nicht mit Objekten des Typs CString umgehen kann?
Es gibt Dir die Adressen der Objekte zurück.Probier mal folgendes:
cout << test.GetString; cout << a.GetString;Müsste heißen:
cout << test.GetString(); cout << a.GetString();
-
Hi,
void guckindieluft (CString a) { cout << a; }
...
guckindieluft("luft");Ich hab das mal getestet aber bei mir geht das ohne Probleme mit Textausgabe.
CallStack:
std::basic_ostream<char,std::char_traits<char> >::sentry::sentry(_Ostr={...})
std::operator<<<std::char_traits<char> >(_Ostr={...}, _Val=0x00358c70)
guckindieluft(a="luft") Line 25 + 0x62 bytes C++ main(argc=2,Gruß Charlie
Microsoft Visual Studio 2005
Version 8.0.50727.762 (SP.050727-7600)
Microsoft .NET Framework
Version 2.0.50727 SP1
Installed Edition: Professional
Microsoft Visual Studio 2005 Professional Edition - ENU Service Pack 1 (KB926601)
Security Update for Microsoft Visual Studio 2005 Professional Edition - ENU (KB937061)