как побороть "варнинг" WSAData

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

как побороть "варнинг" WSAData

Сообщение timofas » 23.08.2013 13:40:41

проект причесал, остался только этот варнинг:
unit1.pas(157,31) Hint: Local variable "WSAData" does not seem to be initialized

Код: Выделить всё
function TForm1.GetIPFromHost(HostName, IPaddr: string): Boolean;
type
  cName = array[0..100] of Char;
  PName = ^cName;
var
  HEnt: pHostEnt;
  HName: PName;
  WSAData: TWSAData;
  i: Integer;
begin
  Result := False;
  if WSAStartup($0202, WSAData) <> 0 then begin  // <<< ругается сюда
    WSAErr := 'Сокет не отвечает!"';
    Exit;
  end;
  New(HName);
  if GetHostName(HName^, SizeOf(cName)) = 0 then
  begin
    HostName := StrPas(HName^);
    s_comp := HostName;
    HEnt := GetHostByName(HName^);
    for i := 0 to HEnt^.h_length - 1 do
     IPaddr := Concat(IPaddr, IntToStr(Ord(HEnt^.h_addr_list^[i])) + '.');
    SetLength(IPaddr, Length(IPaddr) - 1);
    Result := True;
  end
  else begin
   case WSAGetLastError of
    WSANOTINITIALISED:WSAErr:='WSANotInitialised';
    WSAENETDOWN      :WSAErr:='WSAENetDown';
    WSAEINPROGRESS   :WSAErr:='WSAEInProgress';
   end;
  end;
  Dispose(HName);
  WSACleanup;
end;


ну подможите с winsock
timofas
новенький
 
Сообщения: 20
Зарегистрирован: 26.07.2013 14:55:40

Re: как побороть "варнинг" WSAData

Сообщение Ism » 23.08.2013 14:59:22

SetLength(WSAData,0)
WSAData:=nil
или чтото типа такого
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: как побороть "варнинг" WSAData

Сообщение timofas » 23.08.2013 16:28:30

unit1.pas(159,23) Error: Type mismatch
unit1.pas(160,14) Error: Incompatible types: got "Pointer" expected "WSADATA"

в голову не помогло, да я лузер :)
timofas
новенький
 
Сообщения: 20
Зарегистрирован: 26.07.2013 14:55:40

Re: как побороть "варнинг" WSAData

Сообщение Ism » 23.08.2013 16:53:01

Может так , как здесь ?
viewtopic.php?f=30&t=9290&start=30#p74530

Добавлено спустя 3 минуты 51 секунду:
Ищите в исходниках Lazarus по TwsAData
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: как побороть "варнинг" WSAData

Сообщение SeZuka » 24.08.2013 09:42:09

А чем вас смущает это предупреждение, это ведь не ошибка, просто говорится что переменная не инициализирована. Функция WSAStartup как раз и заполняет ее, только компилятор об этом не знает.
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: как побороть "варнинг" WSAData

Сообщение timofas » 26.08.2013 08:04:50

просто периодически она пропадает, понять почему так происходит непонятно
timofas
новенький
 
Сообщения: 20
Зарегистрирован: 26.07.2013 14:55:40


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 224

Рейтинг@Mail.ru