AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal FreePascal Unicode und WideChar API-Funktionen
Thema durchsuchen
Ansicht
Themen-Optionen

Unicode und WideChar API-Funktionen

Ein Thema von Dalai · begonnen am 27. Mär 2023 · letzter Beitrag vom 12. Apr 2023
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#1

AW: Unicode und WideChar API-Funktionen

  Alt 12. Apr 2023, 20:35
Ich habe mal für Dich im Lazarus Forum nachgefragt und die Antwort ist traurig, es geht schlichtweg nicht per switches oder conditionals.
Danke fürs Nachfragen! Nach meinem bisherigen Eindruck ist die Situation wirklich traurig und unbefriedigend.

Zitat:
Die einzige Möglichkeit ist es in der "Windows.pp" unit das hier einzufügen (was allerdings gegen die FPC/Lazarus Programmierung Arbeit, also ohne Gewähr!)
Das FPC_OS_UNICODE kann man wahrscheinlich auch via "Additions and Overrides" in den Projektoptionen definieren. Eigentlich ist dieses Define aber für WinCE, was es nur als Unicode-OS gibt.

Mir wurde soeben eine bessere Variante gezeigt ohne das die RTL "angegriffen" wird und ich hoffe die ist okay für Deine Zwecke @Dalai
Beide Varianten helfen zwar für einige wenige Units, aber bei weitem nicht für alle und vor allem nicht für die Funktionen und Klassen der RTL. Für TStringList, TIniFile, TFileStream und wohl noch viele weitere ändert sich leider nichts. Und logischerweise ändert sich auch nichts, wenn eine RTL-Funktion explizit eine AnsiChar-API-Funktion ruft. All diese Sachen hab ich schon gesehen während der Konvertierung/Portierung eines meiner Projekte. Und das ist noch nicht einmal eines mit GUI. Keine Ahnung, wie die Situation mit Komponenten der LCL wäre.

Dennoch vielen vielen Dank für deinen Einsatz! Bin mal gespannt, wie lange es noch dauert, bis die Umstellung der Free Pascal RTL auf Unicode abgeschlossen ist ... Vielleicht vor dem Ende dieses Jahrzehnts?

Mittlerweile hab ich die Units eines meiner Projekte geändert auf UnicodeString und WideChar. Zum Testen genügt mir das. Mal sehen, ob ich die Entwicklung mit Free Pascal/Lazarus weiter verfolge.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.571 Beiträge
 
Delphi 12 Athens
 
#2

AW: Unicode und WideChar API-Funktionen

  Alt 12. Apr 2023, 20:57
Lang lang ist's her.

als ich damals rein sah, gab es in RTL/VCL, bzw. den Quellen des FPC und des Lazarus einen Mischmasch aus ANSI und UTF8, mit einem Hauch von Unicode.


Die RTL kann man zu großen Teilen mit UTF-8 benutzen, also TStringList usw. (so lange intern keine krittischen APIs benutzt werden),
aber mindestens für die Schnittstelle vom/zum Windows (Win32-API), also auch die VCL, braucht es aber eben ANSI oder Unicode, da nicht alles UTF-8 versteht.

Den INI-Inhalt gibt es offiziell (Microsoft) nur als ANSI oder Unicode (UTF-16 und früher UCS-2),
aber so lange man die INI (Inhalt) nur selber benutzt ... UTF-8 ist ja auch eine Art von ANSI.

Nur der Dateiname für die INI/StringList muß eben ANSI oder Unicode sein. (UTF-8 will die ANSI-API nicht verstehen, denn die erwartet dort CP_ACP oder notfalls auch CP_OEM)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (12. Apr 2023 um 21:03 Uhr)
  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 15:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz