受老师之命开发一个基于snmp的网络监控程序。作为snmp的初学者,在完成的过程中参考了很多前人的经验,也走了一些弯路。在此将学习过程记录下来。
1.基于snmp的开发包有net-snmp和snmp++、agent++等,在此使用snmp++开发。首先编译snmp++的开发包。生成它的.lib文件。
首先从官网(http://www.agentpp.com/snmp_pp3_x/download_snmp_ppv3/download_snmp_ppv3.html)
LIBDES-l-4.01a SNMP++v3.2.25 MS VC++7.0 Project Files下载下来放在一个文件夹里。
建立一个生成名为snmp_pp的静态库工程。
将上一步解压的的三个文件拷贝到工程目录下。
打开工程。在头文件目录下添加现有项,添加的是开发包给的头文件。
在源文件目录下添加现有项,即开发包里的.c和.cpp文件。
设置工程头文件的包含目录(使用相对路径,便于移植)
由于不需要提示bebug信息,故打开config_snmp_pp.h 文件,将#define _NO_LOGGING宏定义打开。
ok,编译,木有错!
运行。出现
取消即可。然后在工程的debug目录下就生成了snmp++包的snmp_pp.lib文件。第一步工作完成!
第二步。生成实现监控功能的DLL,供上层程序调用。
首先新建一个名为UPS的DLL工程
然后将上一步生成的snmp_pp.lib添加到项目中,在项目的属性配置中添加对库的依赖。
将snmp++\include\snmp_pp 文件夹拷贝到工程的项目目录下,在项目头文件文件夹下通过添加现有项将这些头文件加入。
新建UPS.h头文件,打开该文件将需要导出的函数的函数头在这里声明。
将实现这些函数的代码添加到UPS.cpp文件中。这里注意添加两个头文件
#include "snmp_pp/snmp_pp.h"
#include "Ups.h"
其他头文件视程序需要而加。代码不再贴。
接下来就是编译了,没有错误。运行,出现
此时可以在工程目录的debug文件夹中看到生成的UPS.lib和UPS.DLL文件。有了他们就可以提供给别人调用了。第二步完成!
第三步,写一个简单的程序测试DLL的调用效果。
新建一个项目
将UPS.lib,UPS.DLL,UPS.h拷贝到工程的项目目录下。将UPS.h添加到头文件文件夹中。在配置属性中添加UPS.lib
在源文件文件夹中添加UPS_Test.cpp源文件,在mian函数中调用UPS.dll的导出函数
编译并运行,结果如下:
至此,整个过程结束。
没有评论:
发表评论