Как вернуть пробелы из плагина в LCDHype? - PullRequest
0 голосов
/ 23 мая 2018

Я написал плагин для LCDHype с использованием Delphi и хочу вернуть строку, содержащую пробелы.Вот пример:

...

implementation

...

var
  gReturnValue: String;

// Plugin.Foo.GetBar
function Library_GetBar(const AParameter: PScriptFunctionImplementationParameter): PWideChar; stdcall;
begin
  gReturnValue := 'This is a bar';

  result := PWideChar(gReturnValue);
end;

Эти пробелы каким-то образом удаляются из строки приложением и никогда не отображаются.

Как я могу решить эту проблему?

Раскрытие: я автор LCDHype

1 Ответ

0 голосов
/ 23 мая 2018

Возвращаемое значение плагина анализируется LCDHype, что означает, что возвращаемое значение - это в основном код скрипта.

Это также означает, что вы должны вернуть строку , если хотите сохранитьпространства. строка начинается и заканчивается символом ', например

'This is a bar'

. В Delphi вам необходимо экранировать символы ', поэтому значение будет

'''This is a bar'''

Вы можете использовать QuotedStr(), чтобы экранировать символы ' и правильно указывать строку, например:

uses SysUtils; // for QuotedStr()

...

function Library_GetBar(const AParameter: PScriptFunctionImplementationParameter): PWideChar; stdcall;
begin
  gReturnValue := QuotedStr('This is a bar');

  result := PWideChar(gReturnValue);
end;
...