Sinn der Klasse CString
-
Was ist denn nun der Sinn der Klasse CString in der MFC, wenn man genauso gut std::string, was ja bereits als Klasse verpackt ist, benutzen kann?
-
Die MFC ist von 1992, da war std::string noch ein paar Jahre in der Zukunft. Außerdem deckt CStringT einiges an Windows-Speziallitäten ab, die es in std::string nicht gibt.
Andere Frameworks, wie Qt, haben auch ihre eigenen Stringklassen. Das ist typisch für C++.
Aber in der neuen WinRT verwendet Microsoft ja einen COM-Wrapper für std::wstring.
-
-
Der Artikel behandelt einen Aspekt nicht. GetBuffer/ReleaseBuffer/CSTrBuf.
Größter Nachteil warum ich immer CString gegenüber std::string bevorzuge sind die drei Funktionen/Klassen.Ich kann mit GetBuffer mir einen genügend großen Stringbuffer allokieren und diesen an jede beliebige API Funktion übergeben, die einen String zurückliefert.
CStrBuf macht das auch noch extrem einfach.Weiterhin ist CStringT mittlerweile eine vollkommen von der MFC losgelöste Klssse/Template, die mit jedem einfachen Programm benutzt werden kann, ohne die MFC-Lib einzubinden.