Конференция "WinAPI" » GetTCPTable
 
  • Сергей М. © (18.12.08 09:29) [20]

    > at address 0045113C


    Это адрес в твоем коде, а не в коде IPHLPAPI.

    Так что утверждение [10] на поверку оказывается ложным.
  • Nucer (18.12.08 11:44) [21]
    Ошибка возникает при доступе к той памяти где должна находиться таблица. При включенной сортировке туда сначала обращается IPHLPAPI. Если сортировку отключить, то моя программа:


    >       for i:=0 to TCPTable^.dwNumEntries - 1 do
    >          begin
    >           if TCPTable^.Table[I].dwState=MIB_TCP_STATE_LISTEN
    > then
    >              begin
    >               n:=length(ports);
    >               setlength(ports,n+1);
    >               ports[n]:=htons(TCPTable^.Table[I].dwLocalPort);
    >
    >              end;
    >          end;


    Непонятно почему проблема постоянно возникает на небольшом проценте компьютеров, а у остальных никогда.
  • Nucer (18.12.08 11:50) [22]
    Как ее можно локализовать - понятия не имею. Сложность в том, что проверить результат (работает или нет) можно только отправив программу пользователям (а они могут ответить и через сутки). Память выделяется, иначе бы процедуру GetMem вызвала исключение.
  • Сергей М. © (18.12.08 11:53) [23]
    см. меню Search -> Find Error ..
  • Rouse_ © (18.12.08 13:19) [24]
    По всей видимости на машине у проблемных пользователей может стоять некое ПО, приводящее к такому результату. Запроси у них информацию, выдаваемую утилитой MSINFO32 и посмотри что стоит на их машинах.
  • han_malign © (18.12.08 14:23) [25]
    TCPTable^.dwNumEntries > (Size - sizeof(TCPTable^.dwNumEntries)) div sizeof(TCPTable^.Table[I])
    ???
  • amarant555 (22.01.09 18:30) [26]
 
Конференция "WinAPI" » GetTCPTable
Есть новые Нет новых   [134435   +36][b:0][p:0]