Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: UnicodeString unbrauchbar

  Alt 9. Sep 2014, 19:06
Andere Compiler in C++ benutzen keinen UnicodeString, und viele C++ Programmierer haben zudem noch nie was von nem UnicodeString gehört ^^
Rofl, was?

Ich weiß nicht mit was für Bibliotheken du arbeitest, aber eigentlich ist wchar_t der Standardtyp.


Ansonsten ist es wie gehabt in Delphi: Wenn du einen UnicodeString hast und etwas erwartet einen AnsiString musst du ihn mit Gewalt darauf heruntercasten. Im Embarcadero C++-Builder zeigt der Alias _TCHAR entweder auf char oder wchar_t, je nachdem was du in den Projektoptionen eingestellt hast. Wie in Delphi. Nur dass man es da nicht einstellen kann

UnicodeString ist in C++ eine Klasse, die Methode c_str() gibt ein wchar_t-Array zurück. Beim AnsiString ist das sinnvollerweise dann ein char-Array.

Im Beispiel eine Konsolenanwendung:
Code:
#include <vcl.h>
#include <windows.h>

#pragma hdrstop
#pragma argsused

#include <tchar.h>
#include <stdio.h>

#include <iostream>


void myCharFunc(char* myChar) {
   std::cout << "myChar sagt " << myChar;
}
void myFunc(_TCHAR* myTChar) {
   std::wcout << "myTChar sagt " << myTChar ;
}

int _tmain(int argc, _TCHAR* argv[])
{
   UnicodeString myStr = "Hallo Welt";
   myFunc(myStr.c_str());
   // myCharFunc(myStr.c_str()); // nope

    std::cout << '\n';

   myCharFunc( AnsiString(myStr).c_str() );

   getchar();
   return 0;
}

// Edit
Das sollte nicht hämisch oder herablassend klingen. Ich war nur etwas verdutzt.

Geändert von Der schöne Günther ( 9. Sep 2014 um 19:13 Uhr) Grund: Rofl, was.
  Mit Zitat antworten Zitat