Показать сообщение отдельно
  #7  
Старый 30.12.2017, 13:37
Olstgel Olstgel вне форума
Прохожий
 
Регистрация: 16.12.2017
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Вот такой вопрос ещё:
Функция должна передавать версию сервера (5 символов).

Код:
implementation

 Function BVersion (comp: longint; vtxt: shortstring; var vlen: integer) : integer; stdcall; external '2.dll';
//------------

  Function Version( var comp : longint; var vInf : string) : integer;
    var
      tmp : shortString;
      n : Integer;
  begin
    result := BVersion(Comp, tmp, n);
    If n > 0 Then
      begin
        vInf := ansimidstr(tmp,0, n);   //ansileftstr(tmp, n);
      end;
end;
В итоге переменная "n" несёт в себе значение =5 ,
а переменная "tmp" приносит только '.1.3'#0#0#0.....
По какой причине пропущен первый символ? Эта же функция в бейсике возвращает '6.1.3'.
Ответить с цитированием