![]() |
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.
|
AW: Probleme bei der String-Konvertierung
Hallo,
ich würde mal die Debenu-Entwickler bitten, ein Android-Beispiel zur Verfügung zu stellen. |
AW: Probleme bei der String-Konvertierung
Hallo,
Debenu hat sich gemeldet und das Problem gelöst! Es war (wie ich in einem anderen Thread schon schrieb) die Änderung von Embarcadero, dass ab 10.4.1 auch unter Android die Strings ihre Zeichen ab 1 zählen, davor war die Zählung 0 basiert... Ciao Stefan |
AW: Probleme bei der String-Konvertierung
![]() ![]() Ach, ham'se den "Standard" wieder geändert? Seit Einführung der mobilen Platformen waren dort Strings ab 0 aktiv, aber konnte man abstellen/zurückstellen. Stimmt, in der englischen Hilfe steht es nun, wobei Android garnichts "explizit" in der OH genannt wird. (nur das komische IOS) Zitat:
Erst das blöde ARC weg und nun die Strings endlich wieder überall "standardmäßig" einheitlich gleich. Nun kann man endlich anfangen wirklich multiplatform entwickeln, ohne überall unnötig grauenhaft die Strings und Objekte anders behandeln zu müssen. :cat: :bounce1: :firejump: :cheer::cheer::cheer::cheer::cheer::cheer: :drunken: :love: :dp: :party: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 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