Конференция "Прочее" » Разбор кода подсчета трафика
 
  • Поросенок Винни-Пух © (07.07.08 17:04) [20]
    не будет никакой ошибки
  • Сергей М. © (07.07.08 17:05) [21]
    Тебе намекают, что переменная p тут вообще не нужна.

    Вот этого достаточно с тем же успехом:

    caption:=Trim(_MibIfTable.table[i].bDescr);

  • ketmar © (07.07.08 17:12) [22]
    >[14] ob_kun (2008-07-07 16:48:00)
    >а как бы сделали Вы?

    во-первых, приведение типов лишнее. во-вторых, работа с динамической памятью (если судить по алгоритму) лишняя. в третьих, поскольку это таймер, то не надо каждый раз перезаполнять список, полагаю, достаточно будет проверить на изменения. дальше — смотреть на задачу конуретней.

    ---
    Do what thou wilt shall be the whole of the Law.
  • ketmar © (07.07.08 17:15) [23]
    >[14] ob_kun (2008-07-07 16:48:00)
    ну и, кстати, код вообще фиготень. глянуть вот сюда: http://msdn.microsoft.com/en-us/library/aa365943(VS.85).aspx и понять, что если ЭТО работает, то оно не виновато, оно нечаянно.

    ---
    Understanding is not required. Only obedience.
  • int64 (07.07.08 18:08) [24]
    Как я люблю ShowMessage('Произошла ошибка!');
    в таймере !!!
  • ketmar © (07.07.08 18:34) [25]
    >[24] int64 (2008-07-07 18:08:00)
    кстати, да. этот чудесный момент я вообще провтыкал. за это автору отдельный респектище, юзеры будут очень довольны. %-)

    ---
    Understanding is not required. Only obedience.
  • ob_kun (08.07.08 10:46) [26]
    2 Сергей М :
    то есть автор просто замудрил с записью, и можно писать проще?

    Int64, ketmar: как я понял, делаем в этом случае ShowMessage и Timer1.Enabled := False;

    :-)
  • ob_kun (08.07.08 10:57) [27]
    2 ketmar: и еще, Вы предлагаете делать, как я понял, изменение трафика (числа ошибок/скорости etc.) для элемента, название которого в списке соотвествует возвращенному функцией, на первый отсчет таймера - просто производить добавление всех элементов, на последующие - только изменять в соответственных строках значения параметров (поскольку маловероятно внезапное подключение сетевой карты ;) ). Верно я понял?
  • ketmar © (08.07.08 11:26) [28]
    >[26] ob_kun (2008-07-08 10:46:00)
    >делаем в этом случае ShowMessage и Timer1.Enabled := False;

    или так. (ц)
    но вообще-то, рисовать диалоговые окна из обработчика таймера — моветон.

    >[27] ob_kun (2008-07-08 10:57:00)
    и это тоже. так эстетичней. плюс — внимательно почитать ссылку на msdn, которую я привёл, потом код из вопроса, и понять, что код неверный. переписать в соответствии с msdn. потом ещё подумать и вообще прекратить выдылеять/освобождать память в обработчике таймера (кроме самого первого раза, когда поле проинициализируется).

    хинт: локальную переменную делаем полем формы. поскольку вызов пинается по таймеру — явно не стоит дополнительно память насиловать, ей и так от строк печально.

    ---
    Do what thou wilt shall be the whole of the Law.
  • Сергей М. © (08.07.08 11:30) [29]

    > ob_kun   (08.07.08 10:46) [26]


    Это же очевидно)
  • ketmar © (08.07.08 11:35) [30]
    >[29] Сергей М. © (2008-07-08 11:30:00)
    ага, как штаны получил — загордился, перестал разгромные ответы писать!
    %-)

    ---
    All Your Base Are Belong to Us
  • Сергей М. © (08.07.08 11:45) [31]

    > ketmar ©   (08.07.08 11:35) [30]


    Подожди, еще не вечер)
    Вожжа под хвост - неприятность малопредсказуемая)
  • ketmar © (08.07.08 12:00) [32]
    >[31] Сергей М. © (2008-07-08 11:45:00)
    >Вожжа под хвост — неприятность малопредсказуемая)

    я даже боюсь представить, чем ещё штаны оборудованы…

    ---
    All Your Base Are Belong to Us
  • ob_kun (08.07.08 15:29) [33]
    2 ketmar : Извините, не могли бы вы помочь перевести (или хотя бы пояснить смысл) сишной строки
     pIfTable = (MIB_IFTABLE *) MALLOC(sizeof (MIB_IFTABLE));


    Также: как я понимаю, заголовочника для Delphi нет, необходимо экспортировать функцию из динамической библиотеки, а описания структур оставить в программе, которые и были?
  • Palladin © (08.07.08 15:35) [34]

    >  pIfTable = (MIB_IFTABLE *) MALLOC(sizeof (MIB_IFTABLE));

    New(pIfTable);
  • ob_kun (08.07.08 15:36) [35]

    > Palladin

    я и не ожидал, что так коротко) А разве в C++ нет ничего типа New?
  • Palladin © (08.07.08 15:37) [36]
    MALLOC как видишь
  • ketmar © (08.07.08 15:46) [37]
    >[33] ob_kun (2008-07-08 15:29:00)
    >как я понимаю, заголовочника для Delphi нет

    не факт. у джедаев этих заголовков…

    ---
    Do what thou wilt shall be the whole of the Law.
  • ketmar © (08.07.08 15:47) [38]
    >[35] ob_kun (2008-07-08 15:36:00)
    >А разве в C++ нет ничего типа New?

    есть. так и называется — new. только оно совсем для другого. остальное — GetMem(sizeof(…)).

    ---
    Understanding is not required. Only obedience.
  • AlexKniga © (08.07.08 15:52) [39]
    ob_kun
    Дополнение к ketmar
    Джедаи это delphi-jedi.org
 
Конференция "Прочее" » Разбор кода подсчета трафика
Есть новые Нет новых   [134439   +49][b:0.001][p:0.001]