'std::string' to 'LPCH'
-
Vielleicht könnte das Abhilfe schaffen:
typedef std::basic_string<TCHAR> String;
-
ƒred schrieb:
Vielleicht könnte das Abhilfe schaffen:
typedef std::basic_string<TCHAR> String;Nö. Man kann leider einen std::basic_string<TCHAR> eben nicht in einen TCHAR* umwandeln.
-
Martin Richter schrieb:
Nö. Man kann leider einen std::basic_string<TCHAR> eben nicht in einen TCHAR* umwandeln.
Warum funktioniert basic_string::c_str an dieser Stelle nicht?
-
Der Rückgabewert von c_str() ist const.
-
Martin Richter schrieb:
Nö. Man kann leider einen std::basic_string<TCHAR> eben nicht in einen TCHAR* umwandeln.
Nicht "umwandeln" aber doch zugreifen via "buffer()"
-
Registrierter Troll schrieb:
Der Rückgabewert von c_str() ist const.
Ja schon, aber man kann den c_str ja immer noch nach TCHAR[] kopieren... das kann ja kein Argument gegen C++ Strings in Win32-Code sein.
-
ƒred schrieb:
Ja schon, aber man kann den c_str ja immer noch nach TCHAR[] kopieren... das kann ja kein Argument gegen C++ Strings in Win32-Code sein.
Hier geht es um Schreibzugriffe.
GetModuleFilenameschreibt in den String. In const-Strings zu schreiben ist keine gute Idee.Jochen Kalmbach schrieb:
Nicht "umwandeln" aber doch zugreifen via "buffer()"
Die Funktion kenne ich gar nicht und finde auch nichts darüber. Zu was gehört die?
-
Ja, es scheint so, als ob ich das mit dem CString verwechselt habe... da gibt es ein "GetBuffer":
http://msdn.microsoft.com/en-us/library/aa314880Sorry für die Verwirrung...
-
Hier beissen sich einige Dinge. Die Schnittstelle von WinApi ist C, nicht C++. Ein an WinApi übergebener String muss also so sein, wie die Funktionen von WinApi ihn erwarten. Mit irgendwelchen Standardklassen von C++ kann WinApi heute noch nichts anfangen.
-
AlterProgrammierer schrieb:
Hier beissen sich einige Dinge. Die Schnittstelle von WinApi ist C, nicht C++. Ein an WinApi übergebener String muss also so sein, wie die Funktionen von WinApi ihn erwarten. Mit irgendwelchen Standardklassen von C++ kann WinApi heute noch nichts anfangen.
Aber CString::GetBuffer bzw. CStrBuf kommen prima mit den WinAPI Funktionen klar.
-
Martin Richter schrieb:
Aber CString::GetBuffer bzw. CStrBuf kommen prima mit den WinAPI Funktionen klar.
Die transformieren nach C und sind damit für WinApi kompatibel. Wem die auf C eingerichtete WinApi zu restriktiv ist, möge MFC oder VCL einsetzen. Ich wünsche mir da keine grossen Änderungen an der WinApi.