Python中Ctype调用snmp++库
2016-10-07 15:40
155 查看
1. 写C++封装snmp++库的代码
// ctypett.cpp #include <libsnmp.h> #include "snmp_pp/snmp_pp.h" using namespace Snmp_pp; using namespace std; class TestSnmp { public: TestSnmp(); ~TestSnmp(); void PrintHelloWorld(); }; TestSnmp::TestSnmp() { Oid oid("1.2.3.4"); cout << oid.get_printable()<<endl; } TestSnmp::~TestSnmp() { } void TestSnmp::PrintHelloWorld() { cout <<"hello world!!!" <<endl; } extern "C" { TestSnmp* TestSnmp_New() { return new TestSnmp(); } void PrintHelloWorld(TestSnmp* obj) { obj->PrintHelloWorld(); } }
2. 使用g++的编译成共享库
g++ -fPIC -shared -o ctypett.so ctypett.cpp -L/usr/local/src/snmp/lib -lsnmp++
3. 写Python 部分代码,测试库
from ctypes import cdll lib = cdll.LoadLibrary('./ctypett.so') class Foo(object): def __init__(self): self.obj = lib.TestSnmp_New() def PrintHelloWorld(self): lib.PrintHelloWorld(self.obj) tt = Foo() tt.PrintHelloWorld()
4. 结果
相关文章推荐
- ASP.Net程式中调用FCKeditor的接口
- 动态连接库的建立与调用(基础)
- 函数调用堆栈分析
- SQL存储过程(CLR存储过程)或函数中调用.NET程序集中的方法
- 通过JNI实现Java和C++的相互调用(转)
- Android 调用另一个应用(app)中的Activity
- AS3 调用外部SWF中元件库中的元件 【转】
- VFP调用外部Exe文件,执行完后,再接着执行本程序(经典转载)
- Ruby on Rails,链式调用order,limit,offset方法对条件查询结果进行整理
- android调用系统电话和短信
- 调用一个Activity并返回结果
- DedeCMS调用栏目名称
- 在window下,简单利用NDK编译c/c++文件,在android项目中调用。
- [转]为何需要调用“super viewDidLoad
- 学习JNI--Android下使用JNI调用C
- Android:调用系统相机 图库 裁剪-图片上传-客服端-服务器
- Android调用本地WebService
- fast system call 快速系统调用
- 系统调用
- Android调用摄像头和相册