Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: UTF8 als WideString an ActiveX (LPCTSTR)

  Alt 22. Mai 2012, 12:00
Externe Schnittstellen verändern sich nicht, nur weil du jetzt einen anderen Compiler verwendest.

Sind diese als ANSI deklariert, dann bleiben sie ANSI.

Und wird intern z.B. die ANSI-WinAPI für Dateizugriffe verwendet, dann kann auch nur ANSI verwendet werden, da diese Schnittstellen kein UTF-8 vertehn.
Also ohne die verwendete Komponente intern nicht auf Unicode umzustellen, wirst du auch kein Unicode verwenden können.

Einzige Ausnahme sind Strings, welche nur intern verwendet werden und nirgendwo explizit als ANSI (aktuelle CodePage) vorliegen müssen,
wo man Diesem implizit heimlich einen UTF-8-kodierten Text unterschiebt.

Man kann teilweise die Codepage (des Threads, Prozesses oder gar vom ganzen Windows) umstellen, aber in wie weit das hilft, müßte man ausprobieren.



Alternativ kannst du beim ANSI bleiben und mußt nur dafür sorgen, daß die "langen" Datei- und Pfadnamen in das kurze 8.3-Dateiformat umgewandelt werden.
Das geht natürlich nur für existierende Dateien. (Speichern von Dateien würde ausschließlich als ANSI bleiben)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mai 2012 um 12:03 Uhr)
  Mit Zitat antworten Zitat