Как конвертировать String в PWideChar на платформе Android с помощью Delphi

Как преобразовать строку в PwideChar на платформе Android с помощью Delphi? в приложениях Windows это сделано с помощью..

var    
  PW: PWideChar;
begin
  PW := pwidechar(widestring(String));
  PW := pwidechar(widestring(Reply));
  A := ExistWordInString(PW,String,[soWholeWord,soDown]); //A : Boolean

....
end;

проблема в том Undeclared identifier: 'WideString' как обойти это?

Delphi 10 Berlin, Firemonkey, Android

ОБНОВИТЬ

ну, в соответствии с http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Migrating_Delphi_Code_to_Mobile_from_Desktop,, мы не можем использовать widestring, я не могу придумать другой способ использовать строку этой функции:

function ExistWordInString(aString:PWideChar;aSearchString:string;aSearchOptions: TStringSearchOptions): Boolean;
var
  Size : Integer;
Begin
  Size:=StrLen(aString);
  Result := SearchBuf(aString, Size, 0, 0, aSearchString, aSearchOptions)<>nil;

1 ответ

Решение

Ваш код не совсем корректен в Windows. Да, вы можете конвертировать string (псевдоним для UnicodeString) в СОМ WideString, но это пустая трата времени и ресурсов. Правильный код:

var    
  P: PWideChar;
  S: string;
....
P := PWideChar(S);

На самом деле, поскольку вы используете версию Delphi для Unicode, вероятно, идиоматично использовать PChar (псевдоним для PWideChar), чтобы соответствовать string,

Поэтому я бы написал:

var    
  P: PChar;
  S: string;
....
P := PChar(S);

Теперь этот код, а также правильный способ сделать это в Windows, одинаково работает на всех платформах.

Другие вопросы по тегам