【问题标题】:How to convert String to PWideChar in Android Platform using Delphi如何使用 Delphi 在 Android 平台中将 String 转换为 PWideChar
【发布时间】:2017-09-27 14:30:43
【问题描述】:

如何使用 Delphi 在 Android 平台中将字符串转换为 PwideChar ?在 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,我们不能使用宽字符串,我想不出另一种方法来使用字符串这个函数:

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;

【问题讨论】:

    标签: android delphi firemonkey


    【解决方案1】:

    您的代码在 Windows 中并不完全正确。是的,您可以将stringUnicodeString 的别名)转换为 COM WideString,但这是在浪费时间和资源。正确的代码是:

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

    事实上,由于您使用的是 Unicode 版本的 Delphi,因此使用 PCharPWideChar 的别名)可能是习惯用法,以适应 string

    所以我会写:

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

    现在,这段代码,以及在 Windows 上执行此操作的正确方法,在所有平台上都同样适用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      相关资源
      最近更新 更多