お世話になっております。じゃこと申します。
MACアドレスの取得に関して教えて下さい。
以前にも質問であったかと思いますが、[SDK32]イーサネットアダプタのMACアドレスを取
得する
というヘルプのサンプルどうりにコーディングしますと、
Netbios関数がシンボルエラー(未解決)になります。
これはライブラリか何か入れてやらないといけないのでしょうか?
ご回答頂ければ幸いです。よろしくお願いします。
念の為、サンプルを写しましたものですが、現在コーディング中のソースです。
環境はOSがWindows2000
プロジェクトしてはMFCですが、このソースはCのソースで組んでいます。
・ソース
BOOL GetMacAddress ()
{
NCB Ncb;
UCHAR uRetCode;
char NetName[50];
memset( &Ncb, 0, sizeof(Ncb) );
Ncb.ncb_command = NCBRESET;
Ncb.ncb_lana_num = 0;
uRetCode = Netbios( &Ncb );
// printf( The NCBRESET return code is: 0x%x \n, uRetCode );
memset( &Ncb, 0, sizeof (Ncb) );
Ncb.ncb_command = NCBASTAT;
Ncb.ncb_lana_num = 0;
strcpy( Ncb.ncb_callname, * );
Ncb.ncb_buffer = (char *) &Adapter;
Ncb.ncb_length = sizeof(Adapter);
uRetCode = Netbios( &Ncb );
//printf( The NCBASTAT return code is: 0x%x \n, uRetCode );
if ( uRetCode == 0 ) {
printf( The Ethernet Number is: %02x%02x%02x%02x%02x%02x\n,
Adapter.adapt.adapter_address[0],
Adapter.adapt.adapter_address[1],
Adapter.adapt.adapter_address[2],
Adapter.adapt.adapter_address[3],
Adapter.adapt.adapter_address[4],
Adapter.adapt.adapter_address[5] );
}
return (TRUE);
}
開発環境に関する記述が無いので自分の環境に読み替えてほしいのですが、
.NetのHELPで見るとNetBios関数のところに以下の記述があります。
対応情報
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダーファイル:Nb30.h 内で宣言
インポートライブラリ:Netapi32.lib を使用
インポートライブラリを追加で指定する必要があるのではと思うのですが。
PATIOさん、どうもありがとうございました。
ライブラリを追加することでエラーが解消されました。
とてもに助かりました。本当にありがとうございました。