![]() |
Delphi-Version: 5
Probleme bei der String-Konvertierung
Hallo,
ich benutze die Debenu Foxit PDF-Library unter Windows und unter Android. Die Keys zur Freischaltung funktionieren unter Windows, nicht aber unter Android. Die Entwickler haben mir folgendes geantwortet: Because of this the ".so" file expects 32-bit character strings as input. But you are using the ".so" file in Delphi and Delphi by default uses 16-bit character strings. So in order to make it work in delphi you have to convert the license key string to 32-bit character set. Mein Code ist momentan:
Delphi-Quellcode:
var
key : string; begin key := 'js5me41f8di7as31z7nd8ob4y'; .... wie bekomme ich den key in ein 32-bit character set? Danke Ciao Stefan |
AW: Probleme bei der String-Konvertierung
Ich kenne mich damit nicht gut aus. Aber Delphi und standardmäßig 16-bit-Charakter-Strings?
|
AW: Probleme bei der String-Konvertierung
Zitat:
|
AW: Probleme bei der String-Konvertierung
Delphi enthält eine Unit System.Character.pas. Darin gibt es TCharacter.ConvertToUtf32. Damit sollte es eigentlich möglich sein, deinen Delphi String in einen UCS-4 32 Bit String zu konvertieren.
|
AW: Probleme bei der String-Konvertierung
So etwa in der Art:
Delphi-Quellcode:
Wie man das dann aber weitergibt kann ich auch nicht sagen. Wie sieht das denn unter Windows aus?
var
key: string; key4: UCS4String; I: Integer; begin key := 'js5me41f8di7as31z7nd8ob4y'; SetLength(key4, Length(key)); for I := 0 to key.Length - 1 do begin key4[I] := key.Chars[I].ToUCS4Char; end; end; |
AW: Probleme bei der String-Konvertierung
![]() ![]() Demo: ![]() Theoretisch hätte man natürlich zuerst Denken können, man nehme einfach TEncoding/MultiByteToWideChar und erzeuge codiere damit die Bytes für UCS-4 bzw. UTF-32, aber ![]() |
AW: Probleme bei der String-Konvertierung
Delphi-Quellcode:
funktioniert leider nicht!
key4[I] := key.Chars[I].ToUCS4Char;
[DCC Fehler] Unit5.pas(63): E2018 Record, Objekt oder Klassentyp erforderlich [DCC Fehler] Unit5.pas(76): E2010 Inkompatible Typen: 'string' und 'UCS4String' Unter Windows läßt sich die Foxit Library problemlos freischalten. Was ich aber auch noch festgestellt habe: Alles funktioniert mit "normalem String" unter Delphi 10.3.3, die Probleme gibt es dann unter Delphi 10.4.1! Nur muss ich Delphi 10.4.1 benutzen um auch Android 11 Devices unterstützen zu können, mit 10.3.3 compiliert schließen sich die Apps unter Android 11 sofort nach Start wieder! Ciao Stefan |
AW: Probleme bei der String-Konvertierung
Zitat:
Und was steht in Zeile 76? |
AW: Probleme bei der String-Konvertierung
In der Dokumentation steht
![]() Zitat:
|
AW: Probleme bei der String-Konvertierung
Dann ist aber die Doku und die Interfacdeklaration zur DLL ziemlich falsch. Sowohl WideString als auch wchar_t (C++) ist ein 16 Bit String und nicht UCS4 32 Bit.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 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