jorenboy
驱动牛犊
驱动牛犊
  • 注册日期2008-07-19
  • 最后登录2010-03-21
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望178点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1968回复:0

关于vc编译错误--error LNK2019,请高手帮帮忙!

楼主#
更多 发布于:2008-08-03 19:31
今天编了一个简单的程序,但是运行的时候报错说是编译连接错误。
错误是:arp error LNK2019: 无法解析的外部符号 _GetAdaptersInfo@8 ,该符号在函数 "public: void __thiscall CarpDlg::OnIP(void)" (?OnIP@CarpDlg@@QAEXXZ) 中被引用
部分代码如下:
void CarpDlg::OnMAC()
{
    // TODO:  如果该控件是 RICHEDIT 控件,则它将不会
    // 发送该通知,除非重写 CDialog::OnInitDialog()
    // 函数并调用 CRichEditCtrl().SetEventMask(),
    // 同时将 ENM_CHANGE 标志“或”运算到掩码中。

    // TODO:  在此添加控件通知处理程序代码
    PIP_ADAPTER_INFO pAdapterInfo;
    PIP_ADAPTER_INFO pAdapter = NULL;
    CString tmpStr;
    int i;
    DWORD dwRetVal = 0;

    pAdapterInfo = (IP_ADAPTER_INFO *) malloc(sizeof(IP_ADAPTER_INFO));
    unsigned   long   ulOutBufLen   =   sizeof(IP_ADAPTER_INFO);
    if(GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)
    {
        free(pAdapterInfo);
        pAdapterInfo = (IP_ADAPTER_INFO *) malloc(ulOutBufLen);
    }
    if((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
    {
        pAdapter = pAdapterInfo;
        while (pAdapter)
        {
            for (i = 0; i<=( pAdapter->AddressLength-1); i++)
            {
                if (i == (pAdapter->AddressLength - 1))
                    tmpStr.Format("%.2X", (int) pAdapter->Address);
                else
                    tmpStr.Format("%.2X-", (int) pAdapter->Address);
                m_mac.Insert(m_mac.GetLength(), tmpStr);
            }
        }
    }
}
个人认为程序是错在这边,因为原来的程序运行正确,后来加上这个就错了。ONMAC()是一个编辑框,其中m_mac是该编辑框的一个变量。
我是想通过这段程序将网卡的MAC地址输出到编辑框中,其中GetAdaptersInfo函数需要头文件iphlpapi.h,我已经加了。
我运行环境是vc2003.
请高手帮帮忙!!!
如果要配置什么链接器啊什么的,希望能把步骤写一下。
万分感谢!!!
游客

返回顶部