大家好啊
我目的是要擷取網卡的實體位址
參考了 RaynorPao and timhuang兩位的範例進而修改成我要的
下載下來 可以run
但我改成下列程式碼(另開新專案) 就會出現錯誤 程式碼如下.... #include
#pragma hdrstop #include "Unit1.h"
#include "Iphlpapi.h"
//--------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//-------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Memo1->Lines->Clear(); BYTE *pbBuf1, *pbBuf2;
ULONG ulLen1, ulLen2;
IP_ADAPTER_INFO *pipai=NULL;
AnsiString szTemp; if(GetAdaptersInfo(NULL, &ulLen1)!=ERROR_BUFFER_OVERFLOW)
{
ShowMessage("error while get the size of Buffer Size for
GetAdaptersInfo");
exit;
}
pbBuf1 = new BYTE[ulLen1]; if(ERROR_SUCCESS==GetAdaptersInfo((IP_ADAPTER_INFO*)pbBuf1,
&ulLen1))
{
pipai=(IP_ADAPTER_INFO*)pbBuf1;
do
{
// Mac ID
szTemp.sprintf("X:X:X:X:X:X",
pipai->Address[0], pipai->Address[1], pipai->Address[2],
pipai->Address[3], pipai->Address[4], pipai->Address[5]);
Form1->Memo1->Lines->Add("Address=" szTemp);
}while(pipai!=NULL);
}
delete[] pbBuf1;
} 出現錯誤訊息如下...
[Linker Error] Unresolved external 'GetAdaptersInfo' referenced from
D:\BBB\MAC_ID\UNIT1.OBJ 有些問題想問一下各位
1. 為什麼我利用先前兩位的程式範例, 開啟GetAdaptersInfo1.bpr專案檔後
不是出現unit.cpp及它的form表呢?? (一般都是這樣 的)
而是開啟GetAdaptersInfo1.cpp 為什麼呢 ???
2. 像這樣的專案 的新增步驟跟一般的有何不同呢??
3. 像這樣的錯誤 我想應該是缺少某些檔案
我的電腦裡有 iphlpapi.h 在\Include資料夾裡
iphlpapi.lib 在 \Lib and \Lib\Psdk 裡面
iphlpapi.def 在 \Source\Rtl\Source\defs 裡
請問還需要什麼檔案呢?? (是Iphlpapi.dll 嗎??) 期待各位的回覆 Thanks...
< >< >