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.