Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

программа для учета переданной у полученной информации   Найти похожие ветки 

 
Naduev Aleksei ©   (2006-04-29 03:26) [0]

Как уменьшить код программы.
Зачем в коде применяется {$S-,R-,B-}
Как узнать какие переменные использует библиотека?
Как работает функция GetIfTable?
Для чего Size := SizeOf(Table);

Это часть исходного кода программы it с сайта http://www.programania.com/

unit Unit1;
{$S-,R-,B-}
interface

uses
 Windows, SysUtils, Forms, Dialogs, ComCtrls,
 Controls, ExtCtrls, Classes, StdCtrls, messages;

type
 TForm1 = class(TForm)
   Timer1: TTimer;
   procedure Timer1Timer(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

type
 TMibIfRow         = record
   wszName        : array[0..255] of WideChar;
   dwIndex        : DWORD;
   dwType         : DWORD;
   dwMtu          : DWORD;
   dwSpeed        : DWORD;
   dwPhysAddrLen   : DWORD;
   bPhysAddr      : array[0..7] of Byte;
   dwAdminStatus   : DWORD;
   dwOperStatus   : DWORD;
   dwLastChange   : DWORD;
   dwInOctets    : DWORD;
   dwInUcastPkts   : DWORD;
   dwInNUCastPkts : DWORD;
   dwInDiscards   : DWORD;
   dwInErrors    : DWORD;
   dwInUnknownProtos : DWORD;
   dwOutOctets    : DWORD;
   dwOutUCastPkts : DWORD;
   dwOutNUCastPkts : DWORD;
   dwOutDiscards   : DWORD;
   dwOutErrors    : DWORD;
   dwOutQLen      : DWORD;
   dwDescrLen    : DWORD;
   bDescr        : array[0..255] of Char;
 end;

type

 TMibIfTable   = record
 dwNumEntries : DWORD;
 Table         : array [0..512] of TMibIfRow;
end;
PMibIfTable = ^ TMibIfTable;

var
GetIfTable:function(pIfTable: pMibIfTable; pdwSize:puLONG; bOrder:boolean):DWORD;stdcall;
FLibHandle: tHandle;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
BEGIN
FLibHandle := LoadLibrary("IPHLPAPI.DLL");
@GetIfTable := GetProcAddress(FLibHandle, "GetIfTable");
timer1.enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
Table   : tMibIfTable;
size  : integer;
begin
timer1.Enabled:=false;
Size := SizeOf(Table);
GetIfTable(@Table, @Size, false );
  begin
    //получено байт
    showmessage(inttostr(Table.Table[0].dwInOctets));
    //передано байт
    showmessage(inttostr(Table.Table[0].dwOutOctets));
  end;
timer1.Enabled:=true;
end;
end.


 
tesseract ©   (2006-04-29 11:54) [1]

учиться, учиться и ещё F1


 
programania ©   (2006-04-30 23:04) [2]

>Как уменьшить код программы.

Удалить #13#10 в строках 396 и 421

>Зачем в коде применяется {$S-,R-,B-}

Для небольшого уменьшения exe программы и ускорения

>Как работает функция GetIfTable?

Как магическое заклинание

>Как узнать какие переменные использует библиотека?

Найти пример ее использования по ее имени
Например статью указаную в unit1.pas
http://delphimaster.ru/articles/netmon/index.html



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.033 c
2-1156333098
rr
2006-08-23 15:38
2006.09.17
Как построчно прочитать файл


15-1156521040
saxon
2006-08-25 19:50
2006.09.17
Тест Джоэла


15-1156227737
sergey888
2006-08-22 10:22
2006.09.17
Кто-нибудь делал на Дельфи что-то вроде ERWin


2-1156856626
redlord
2006-08-29 17:03
2006.09.17
видимость переменных


15-1156136875
Карелин Артем
2006-08-21 09:07
2006.09.17
Вызывают ли энергетические напитки привыкание?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский