static void GetMACaddress(void)
{
  IP_ADAPTER_INFO AdapterInfo[16];       // 定义网卡信息存贮区。
    DWORD dwBufLen = sizeof(AdapterInfo);      DWORD dwStatus = GetAdaptersInfo(      
    AdapterInfo,                 // [output] 指向接收数据缓冲指针
    &dwBufLen);                  // [input] 缓冲区大小
    assert(dwStatus == ERROR_SUCCESS);  // 此处是个trap,用来保证返回值有效    PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo; 
  do {
     PrintMACaddress(pAdapterInfo->Address); // 打印MAC地址
         pAdapterInfo = pAdapterInfo->Next;    
  }
  while(pAdapterInfo);   
}

解决方案 »

  1.   

    class procedure GetMACaddress;
    var
      AdapterInfo array[0..15] of IP_ADAPTER_INFO;
      dwBufLen: DWORD;
      pAdapterInfo: PIP_ADAPTER_INFO;
    begin
      dwBufLen = sizeof(AdapterInfo);  
      dwStatus = GetAdaptersInfo(      
        AdapterInfo,                 // or @AdapterInfo
        @dwBufLen);                  // [input] 缓冲区大小
      assert(dwStatus == ERROR_SUCCESS);  // 此处是个trap,用来保证返回值有效
      
      pAdapterInfo = AdapterInfo; 
      while pAdapterInfo <> nil do // delphi好像没有 do..while 所以可能有点点差别
      begin
        PrintMACaddress(pAdapterInfo.Address); // 打印MAC地址
        pAdapterInfo = pAdapterInfo.Next;    
      end;   
      
    end;
      

  2.   

    [Error] Unit1.pas(26): Undeclared identifier: 'IP_ADAPTER_INFO'
    [Error] Unit1.pas(28): Undeclared identifier: 'PIP_ADAPTER_INFO'
    [Error] Unit1.pas(31): Undeclared identifier: 'GetAdaptersInfo'
    怎么处理???
      

  3.   

    IP_ADAPTER_INFO
    应该是该C代码里定义的数据结构 也要相应的由struct -> record
    PIP_ADAPTER_INFO = ^PIP_ADAPTER_INFO;GetAdaptersInfo 这个函数你也需要由C改成PASCAL你贴出来 我给你改