Ошибка несоответствия типов после обновления до 6.0.2 в inno - PullRequest
0 голосов
/ 29 мая 2019

Код работал нормально, но после обновления до inno 6.0.2 я получил ошибку при компиляции. Ошибка:

Несоответствие типов

в строке if LoadStringFromFile(TmpFile, ExecStdout) then код, как показано ниже:

function NextButtonClick(CurPageID: Integer): Boolean;
var
  TmpFile, ExecStdout: string;
  ResultCode: integer;
begin
  Result := True;
  if CurPageID = HostingPage.ID then
    begin
      Domain   := HostingPage.values[0];
      DomainPort := HostingPage.values[1];

        TmpFile := ExpandConstant('{tmp}') + '\~pid.txt';
        Exec('cmd.exe',
        '/C FOR /F "usebackq tokens=5 delims= " %i IN (`netstat -ano ^|find "0.0:'+DomainPort+'"`) DO '
        + '@tasklist /fi "pid eq %i" | find "%i" > "' + TmpFile + '"', '', SW_HIDE,
        ewWaitUntilTerminated, ResultCode);
        if LoadStringFromFile(TmpFile, ExecStdout) then
        begin
            MsgBox('The Port ('+DomainPort+')  ' #13 + ExecStdout, mbError, MB_OK);
            Result := False;
        end;
        DeleteFile(TmpFile);
    end;    
end;

1 Ответ

1 голос
/ 30 мая 2019

Код, который вы отправили в неполном, всегда публикуйте MCVE .

Проблема заключается в использовании неверного типа параметра, см. Документацию:

function LoadStringFromFile (const FileName: String; var S: AnsiString): Boolean;

Измените его следующим образом:

function NextButtonClick(CurPageID: Integer): Boolean;
var
  TmpFile: String;
  ExecStdout: AnsiString; // << Was String in your script
  ResultCode: Integer;

Это потому, что Inno Setup 6 имеет значение Unicodeтолько :

Изменение поведения по умолчанию: Начиная с Inno Setup 6 доступна только одна версия: Unicode Inno Setup. Unicode Inno Setup была доступна для9 лет, но если вы еще не обновились: обратитесь к разделу Настройка UnnoCode Inno в файле справки для получения дополнительной информации.По сути, если вы не используете [Code] для выполнения вызовов DLL со строковыми параметрами, вам не нужно вносить какие-либо изменения в ваш скрипт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...