恩,贴代码吧,我想就是加#include的时候有什么符号没有匹配之类的原因

解决方案 »

  1.   

    对不起:
      一直连不上,所以现在才反馈。代码如下:// mac.cpp : Defines the entry point for the console application.
    //#include "stdafx.h"
    #include "Nb30.h" typedef struct _ASTAT_
    {
        ADAPTER_STATUS adapt;
        NAME_BUFFER    NameBuff [30];
    }ASTAT, * PASTAT; ASTAT Adapter;
    // 定 义一 个 存 放 返 回 网 卡 信 息 的 变 量, 输 入 参 数lana_num 为 网 卡 编 号,
    //一 般 地, 从0 开 始, 但 在Windows 2000 中并 不 一 定 是 连 续 分 配 的void getmac_one (int lana_num)
    {
        NCB ncb;
        UCHAR uRetCode;    memset(&ncb, 0, sizeof(ncb) );
        ncb.ncb_command = NCBRESET;
    ncb.ncb_lana_num = lana_num;    
    // 指 定 网 卡 号, 首 先 对 选 定 的 网 卡 发 送 一个NCBRESET 命令,以便进行初始化    uRetCode = Netbios( &ncb );
    cout<<"The NCBRESET \n";
    // return (code is: 0x %x \n", uRetCode );    memset( &ncb, 0, sizeof(ncb) );
        ncb.ncb_command = NCBASTAT;
        ncb.ncb_lana_num = lana_num;   // 指 定 网 卡 号 strcpy((char *)ncb.ncb_callname,"*");   
    ncb.ncb_buffer = (unsigned char *) &Adapter;      
    // 指 定 返 回 的 信 息 存 放 的 变 量
        ncb.ncb_length = sizeof(Adapter); // 接着,发送NCBASTAT 命 令以 获 取 网 卡 的 信 息    uRetCode = Netbios( &ncb );
    cout<<"The NCBASTAT return code is:0x %x \n"<<uRetCode;
        if ( uRetCode == 0 )
        {
            // 把网卡MAC地址格式化 成 常 用 的16 进 制 形 式,如0010 -A4E4 -5802 cout<<"The Ethernet Number[ %d] is:%02X %02X - %02X %02X - %02X %02X\n"
                <<lana_num
                <<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]};
        }
    }
    int main(int argc, char* argv[])
    {
    NCB ncb;
        UCHAR uRetCode;
        LANA_ENUM lana_enum;    memset( &ncb, 0, sizeof(ncb) );
        ncb.ncb_command = NCBENUM;    ncb.ncb_buffer = (unsigned char *) &lana_enum;
        ncb.ncb_length = sizeof(lana_enum); // 向 网 卡 发 送NCBENUM 命 令,以 获 取 当 前 机 器 的 网 卡 信 息,
    //如 有 多 少 个 网 卡、 每 张 网 卡 的 编 号 等
     
      
        uRetCode = Netbios( &ncb );
    cout( "The NCBENUM return code is:0x %x \n", uRetCode );
           if ( uRetCode == 0 )
           {
           cout( "Ethernet Count is : %d\n\n", lana_enum.length);       // 对 每 一 张 网 卡, 以 其 网 卡 编 号 为输 入 编 号, 获 取 其MAC 地 址 
           
           //for ( int i=0; i
       }
    return 0;
    }
      

  2.   

    我要下班了,希望yakai(日落长河),ynyn(风林火山)或其他高手帮我搞定。明天8:30见。谢谢了。
      

  3.   

    1。cout和printf的用法不一样,你现在拿printf的语法来使用cout当然不行,去看帮助。
    2。如果你要用cout,那加上这一句:#include "iostream.h"
    3。工程设置成多线程模式。
    4。在工程设置里加入NETAPI32.LIB文件。
      

  4.   

    ft,仔细看了一下,居然是nb30.h里报的错呀,不明白了
      

  5.   

    #include "Nb30.h"
    放#include "stdafx.h"前面实施!
      

  6.   

    21bird,能解释一下原因么?我试了一下,好象还是不行呀
      

  7.   

    公司上网不常断线,所以……21BIRD,象风林火山说的那样,解释一下原因,如何?我也试了,错误变成52个。鉴于此,先给10分。请问cxiaobao(风子),how to “工程设置成多线程模式”?
    我的.CPP是win32 console application 模式。小弟先谢了。
      

  8.   

    在project/setting/link/object/libary module 里加入netapi32.lib
      

  9.   

    我已经编译通过,主要因为你的nb30.h加了但它的库却没加入;你如果还不行的话在将stdafx.h,stdafx.cpp文件考到目录下。