A
Smitty schrieb:
MessageBox verlangt UnicodeString.
Application->MessageBox( UnicodeString(msg).w_str(), UnicodeString("Fehler").w_str(), MB_OK + MB_ICONERROR);
Wenn der Code auch mit früheren C++Builder-Versionen kompilieren soll, wäre es ratsam, das Typedef String anstelle von UnicodeString zu benutzen.
Zudem kannst du Stringliterale auch in _T() wrappen (ggf. tchar.h einbinden), dann werden sie, abhängig von der TCHAR-Mapping-Projektoption, zu wide- oder narrow-Literalen.
Weiterhin verhält sich UnicodeString::c_str() seit Update 1 wieder erwartungsgemäß, so daß du es zwecks Einheitlichkeit benutzen kannst.
Flag-Parameter, die an WinAPI-Funktionen übergeben werden, sollten übrigens nicht mit +, sondern mit | kombiniert werden, da manche Konstanten mehrere Flags kombinieren.
Application->MessageBox (String (msg).c_str (), _T ("Fehler"), MB_OK | MB_ICONERROR);