Einzelnen Beitrag anzeigen

warschonweg

Registriert seit: 2. Okt 2014
31 Beiträge
 
#1

mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 20:25
Delphi-Version: 10 Seattle
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?
Nach Diktat verreist,
[war schon weg].
  Mit Zitat antworten Zitat