ďťż

Ładny brzuch

Czy mi nie może się chociaż jedna pożyteczna rzecz z tym trojanem udać? :(
NOrmlanie, bez przesyłania, działa pobieranie dysków, folderów, itp. Ale gdy już chcę przesłać to zaczyna się problem po stronie klienta. Więc od początku: (istotne dla sprawy kody serwera):
TPackDrives = record    drives: TStrings;  end; case of bleble, pakiety: CLIENT_DRIVES:  begin  pack.typ := SERW_DRIVES;  Athread.Connection.WriteBuffer(pack, SizeOf(pack));  // 25 pozycji napędów od: a-z  for x := Ord('A') to Ord('Z') do  begin  DrvLetter := Chr(x)+':\';  DrvType := GetDriveType(pChar(DrvLetter));  case DrvType of  0,1 : DrvString := '';  DRIVE_REMOVABLE : DrvString := 'Wyjmowalny';  DRIVE_FIXED : DrvString := 'Stały';  DRIVE_REMOTE : DrvString := 'Sieciowy';  DRIVE_CDROM : DrvString := 'CD-ROM';  DRIVE_RAMDISK : DrvString := 'RAM dysk';  end;  if DrvString <> '' then  drvs.drives.add(drvLetter)  end;  Athread.Connection.WriteBuffer(drvs, SizeOf(drvs));  end; end;

TU pewnie wszystko jest w porządku. Teraz kod klienta.
W type jest zadeklarowany ten sam pakiet TPackDrives. Gdy przychodzi pakiet bleble informujacy ze przychodzi lista dysków (jest to zdarzenie CLientOnRecive z KSE):
SERW_DRIVES:        begin         drvs.drives := TStringLIst.Create;        form1.TCPClient.ReadBuffer(drvs, SizeOf(drvs));        form1.cbDyski.Items := drvs.drives;        end;
Niby wszystko powinno byc dobrze, w liscie combo mają się pojawić dyski. Ale tak nie jest - wyskakuje błąd AccessViolation. Dlaczego i jak sobie poradzić? :( :( :( :(



Gdyz po stronie klienta drvs.drives ma rozmiar mniejszy od tego na serwerze, przez co zle odbiera liste. Wyslij mu najpierw rozmiar drvs a potem niech taka ilosc bajtow czyta. Kumasz? ;)
Użytkownik Kajetanek edytował ten post 04 grudzień 2005, 16:35

Gdyz po stronie klienta drvs.drives ma rozmiar mniejszy od tego na serwerze, przez co zle odbiera liste. Wyslij mu najpierw rozmiar drvs a potem niech taka ilosc bajtow czyta. Kumasz? ;)

TStrings nie przejdzie, bo w rekordzie masz tak naprawde wskaznik na klase ... sprobuj przesylac jako kolejne elementy tablicy

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •