Visual Studio 2010基于SNMP++开发(1)
转自
http://blog.sina.com.cn/s/blog_8ce3de3b0100v8h3.html
最近一直在研究利用SNMP++的包,在Visual Studio 2010上进行开发。
说实话挺恶心,好歹现在有点眉目。记录一下吧。
一、SNMP服务的开启。
1.第一步肯定要开启系统的SNMP服务,不然一切都是浮云。
Win7用户就不用多说了,如果是Xp用户,如果没有安装盘,需要下载一个安装包(SnmpForXp)网上有。
安装完成以后,需要进行简单的设置。
控制面板\管理工具\服务
2.双击SNMP Service,打开陷阱,在“团体名称”中新建一个public,然后在“陷阱目标”中加入“127.0.0.1”或者自己的地址,便于测试。
3.打开安全,点上“发送身份验证陷阱”,可以根据需要更改一些权限,还有接受来自哪些主机的SNMP包,都可以自己定义。确定,完成。
4.测试一下,SNMP是否启用。首先要下载一个工具--“Snmputil.exe”,可以放到windows\system32\下,这样可以随时随地使用。开始-运行-cmd。打入:snmputil,回车,可以看到一个简介。
usage:就是这个软件的用法,agent:代理地址,community:记得刚才新建的“public”吗,oid不明白自己再去看吧。
5.假设我们打命令:snmputil get 192.168.0.102 .1.3.6.1.2.1.1.5.0,回车,如下图
这里:192.168.0.102,是我在局域网里的地址,".1.3.6.1.2.1.1.5.0"是Oid,注意一定要前面加一个“.“。
到这里就哦了,SNMP服务已经安装上了。
如果,没有开机启动SNMP,也可以手动开启,有一个简单的命令,CMD后,net start snmp
二、用Vs2010编译本地的snmp_pp.lib
从官网上下包。详细内容,参见:
http://www.cnblogs.com/VRS_technology/archive/2010/08/13/1799226.html
只有一点不一样,在“目录设置”的时候,Vs2010的方法是在“属性管理器”->Debug|Win32->Microsoft.Cpp
其他都一样,就是细心一点分清楚.h和.cpp以及.c文件就行了。
三、创建一个Win32应用控制台程序
1.这里有我的一个编译通过的代码。可以测试一用。注意把IP地址改掉。
#include "stdafx.h"
#include <snmp_pp.h>
#include <iostream>
#define SYSDESCR "1.3.6.1.2.1.1.1.0"
using namespace std;
void get_system_descriptor()
{
}
int _tmain(int argc, _TCHAR* argv[])
{
}
2.但是仅仅是这样还是不够的。我们引入一个SNMP++的库,以及一个snmp_pp.lib都是有用的。
在项目->属性里,进行如下设置。
常规 ==》MFC的使用 ==》 在共享的DLL中使用MFC
C/C++
链接器 ==》输入 ==》 附加依赖项 加入 snmp_pp.lib
注意:网上有的解决办法是采用静态MFC,运行库也不一样,具体大家自己琢磨一下。
3.现在可以编译试试了。
四、常见问题
1.各种冲突,神马在神马中已经定义????????!!!
注意看好哪些库冲突,然后在项目==》属性==》链接器==》输入==》忽略特定默认库==》加入就行了。
2.各种神马外部符号无法确认?????????!!!!!
总之,各种问题的产生问题也不同,网上的答案也是千奇百怪,如果我说的不行,大家再试试别的方法。
具体内部原因,因为我也是初学者,自己理解的也不一定对。如果有高人,请留言指点。