用过SNMP++开发包的请进
zzss 2011-06-03 10:06:27 这个程序在Win32 Application正常运行和编译,而在MFC我做一个对话框,做到点击一个按钮,就在文本框显示要取的值,代码移植后编译和组建都没有错误,但运行时,一点击按钮就死机3秒左右,然后直接退出或出现写内容错误。我的操作系统是WIN2003,VC++6.0,我检查一下发现在 执行到“Snmp snmp(status);”时发生死机,不知是什么原因? 为何同样语句在WIn32 Application正常,在MFC下就报错呢?而且我看别人程序也是这样写的,为何他就正常呢?
void Get_Sysdecr()
{
int status;
Snmp::socket_startup();
UdpAddress address("13.1.200.209:161");
Vb vb(SYSNAME);
CTarget ctarget(address);
ctarget.set_version(version2c);
ctarget.set_retry(1);
ctarget.set_timeout(1000);
ctarget.set_readcommunity("public");
Pdu pdu;
SnmpTarget *target;
target = &ctarget;
Snmp snmp(status);
if(status != SNMP_CLASS_SUCCESS)
{
cout<<snmp.error_msg(status);
cout<<"error in initsnmp"<<endl;
return ;
}
pdu+=vb;
cout<<"send***************"<<endl;
if((status=snmp.get(pdu,*target))!=SNMP_CLASS_SUCCESS)
{
cout <<snmp.error_msg(status)<<endl;
cout<<"Error in snmpget"<<endl;
}
else
{
pdu.get_vb(vb,0);
cout<<"Oid=" <<vb.get_printable_oid()<<endl;
cout<<"System Name="<<vb.get_printable_value();
cout<<endl;
}
}