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);
}
{
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);
}
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;
[Error] Unit1.pas(28): Undeclared identifier: 'PIP_ADAPTER_INFO'
[Error] Unit1.pas(31): Undeclared identifier: 'GetAdaptersInfo'
怎么处理???
应该是该C代码里定义的数据结构 也要相应的由struct -> record
PIP_ADAPTER_INFO = ^PIP_ADAPTER_INFO;GetAdaptersInfo 这个函数你也需要由C改成PASCAL你贴出来 我给你改