So.
Ich habe die undankbare Aufgabe, eine uralte
DLL, die in Delphi 6 für eine Vor-
Unicode-Version von mIRC geschrieben wurde, auf den neuesten Stand zu bringen. Es kommt also überall, wo bisher
PChars und
strings verwendet wurden, plötzlich so was wie
Unicode rein und so was wie
Unicode raus.
Dabei scheitere ich schon an der einfachen Aufgabe, eine Methode, die einfach nur 'ne Messagebox anzeigt, sinnvoll zu konvertieren:
Code:
function messageok( mWnd: hWnd; aWnd: hWnd; Data: PChar; Parms: PChar; Show: Boolean; NoPause: Boolean ): Integer; export; stdcall;
begin
MessageBoxA(mWnd, PAnsiChar(AnsiString(Data)), 'Message', MB_OK);
MessageBoxA(mWnd, PAnsiChar(Utf8Decode(Data)), 'Message', MB_OK);
MessageBoxW(mWnd, PWideChar(UnicodeString(Data)), 'Message', MB_OK);
MessageBoxW(mWnd, PWideChar(Utf8Encode(Data)), 'Message', MB_OK);
result := 1;
end;
Wenn ich von mIRC aus "ÄäÖöÜüß" reinschicke, kommt bei allen vier was anderes raus - wahlweise Fragezeichen oder chinesische Schriftzeichen. Irgendwie stehe ich auf dem Schlauch - kann mich wer in die richtige Richtung schubsen?