AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen
Thema durchsuchen
Ansicht
Themen-Optionen

mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

Ein Thema von warschonweg · begonnen am 4. Mär 2016 · letzter Beitrag vom 4. Mär 2016
Antwort Antwort
warschonweg

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

mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 21: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
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 21:54
Hallo,
wenn das eine Vor-Unicode-Version von mIRC ist:

function messageok( mWnd: hWnd; aWnd: hWnd; Data: PAnsiChar; Parms: PAnsiChar; Show: Boolean; NoPause: Boolean ): Integer; export; stdcall;

mIRC liefert das doch also PAnsiChar oder nicht ?

Heiko
Heiko
  Mit Zitat antworten Zitat
warschonweg

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

AW: mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 22:09
Nein, es geht ja gerade darum, dass das alte Nicht-Unicode-Projekt aus einer Vor-Unicode-mIRC-Version auch in einem aktuellen mIRC und Delphi 10 funktioniert - ich hab' es hier also mit Unicode zu tun.

Glaube ich.
Nach Diktat verreist,
[war schon weg].
  Mit Zitat antworten Zitat
warschonweg

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

AW: mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 22:42
Was bedauerlicherweise funktioniert, ist:

Code:
function messageok( mWnd: hWnd; aWnd: hWnd; Data: PAnsiChar; Parms: PChar; Show: Boolean; NoPause: Boolean ): Integer; export; stdcall;
begin
  MessageBoxW(mWnd, PWideChar(UnicodeString(Utf8Decode(Data))), 'Message', MB_OK);
end;
Aber irgendwie beschleicht mich das Gefühl, dass ich da zu viel konvertiere.
Nach Diktat verreist,
[war schon weg].
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 22:59
Hallo,
also du musst dich doch schon an die Konvention vom mIRC halten.

WideChar(UnicodeString(Utf8Decode(Data)))

Sowas auf jeden Fall über lokale Variablen testen.


Heiko
Heiko
  Mit Zitat antworten Zitat
warschonweg

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

AW: mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 23:02
Das ist ein bisschen Stochern im Nebel, die mIRC-Konvention ist kein Open Source...
Nach Diktat verreist,
[war schon weg].
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 23:03
Unter Unicode Delphi entspricht ein PChar dem alten PWidechar. Also einfach aus dem PAnsiChar ein PChar machen. Also denke ich jetzt mal so. Delphi sollte dann von sich aus dafür sorgen, dass MessageboxW aufgerufen wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
warschonweg

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

AW: mIRC-Bibliothek auf Unicode umstellen - ein hartes Unterfangen

  Alt 4. Mär 2016, 23:05
Mit PChar ging es nicht so recht, siehe #1. Daher hab' ich ja "so was wie Unicode" geschrieben. mIRC scheint da etwas eigen zu sein. Oder einfach nur anders.
Nach Diktat verreist,
[war schon weg].
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz