lpAdapter := PacketOpenAdapter('{\Device\NPF_f9837f2c-4b57-4bfa-b06a-19e63c75ae1a}');执行到这一句出错Debugger Exception Notification 
    Project a.exe raised exception class EAccessViolation with message 'AccessViolation at adress 00000000.Read of address 00000000'.Press stopped.Use step or run to continue. 

解决方案 »

  1.   

    PacketOpenAdapter 的动态库有没有加载是不是引用'Packet.dll'参考
    http://topic.csdn.net/u/20080707/11/e4a2cb66-2d99-42f0-b2c1-87c40c06f6f5.html
      

  2.   

    楼上说的我已经看了好几遍了 没办法 我太笨帮我解决下面这个问题就行了function GetAdaptersInfo(Buf:PIPAdapterInfo;var BufLen:ULONG):DWORD;stdcall;
    implementation
    function GetAdaptersInfo;external 'iphlpapi.dll' name 'GetAdaptersInfo';
    对于GetAdaptersInfo函数,Buf参数要求函数的调用者自行分配,如果分配的空间不足,函数返回ERROR_BUFFER_OVERFLOW,BufLen变参的值被设置为实际需要的缓冲区大小,因此可以再行分配,以满足需
    上面这段从网上找来的,我正好有两块网卡 函数返回ERROR_BUFFER_OVERFLOW  不会玩那个buflen
      

  3.   

    BufLen好像是PIPAdapterInfo的长度吧,你能取到buf的值,BufLen自然就可以确定了