Главная страница
    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.052 c
15-1156381399
Очень грустный человек
2006-08-24 05:03
2006.09.17
Где Magic Forum?


3-1152610011
Asail
2006-07-11 13:26
2006.09.17
Проблемма с тригером в IB.


3-1152705652
MJShvedov
2006-07-12 16:00
2006.09.17
Можно ли редактировать таблицу после объединения?


1-1155108199
Kiloper
2006-08-09 11:23
2006.09.17
Помогите с классом TStream....


9-1134788983
keht
2005-12-17 06:09
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский