-
> at address 0045113C
Это адрес в твоем коде, а не в коде IPHLPAPI.
Так что утверждение [10] на поверку оказывается ложным.
-
Ошибка возникает при доступе к той памяти где должна находиться таблица. При включенной сортировке туда сначала обращается 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;
Непонятно почему проблема постоянно возникает на небольшом проценте компьютеров, а у остальных никогда.
-
Как ее можно локализовать - понятия не имею. Сложность в том, что проверить результат (работает или нет) можно только отправив программу пользователям (а они могут ответить и через сутки). Память выделяется, иначе бы процедуру GetMem вызвала исключение.
-
см. меню Search -> Find Error ..
-
По всей видимости на машине у проблемных пользователей может стоять некое ПО, приводящее к такому результату. Запроси у них информацию, выдаваемую утилитой MSINFO32 и посмотри что стоит на их машинах.
-
TCPTable^.dwNumEntries > (Size - sizeof(TCPTable^.dwNumEntries)) div sizeof(TCPTable^.Table[I]) ???
-
|