python 调用so dll动态链接库
来源:互联网 发布:数据统计分析 需要 编辑:程序博客网 时间:2024/04/30 15:47
ctypes使得python能够直接调用c语言开发的动态链接库,非常强大。
为了使用CTypes,你必须依次完成以下步骤:
* 编写动态连接库程序
* 载入动态连接库
* 将Python的对象转换为ctypes所能识别的参数
* 使用ctypes的参数调用动态连接库中的函数
一、Windows下使用Python的ctypes调用Dll动态链接库
- 编写dll文件
打开VS2008,新建一个VC工程,选择Win32类型,Win32项目,用程序类型选择DLL………
调用方式见Linux调用方式。
二、Linux下使用Python的ctypes调用so动态链接库
- 编写so文件
1
//test.h
2
#include "stdio.h"
3
4
void
test();
5
float
add(
float
,
float
);
01
//test.c
02
#include "test.h"
03
04
void
test()
05
{
06
printf
(
"Hello Dll...\n"
);
07
}
08
09
float
add(
float
a,
float
b)
10
{
11
return
a + b;
12
}
1
gcc -fPIC -shared
test
.c -o libtest.so
2
3
#-fPIC 编译成位置无关代码,必须 不然你的程序在别的地方肯可能运行不了
4
#-shared 当然是说要编译成共享库了
- Python调用so动态链接库
01
#!/usr/bin/env python
02
# -*-coding:UTF-8-*-
03
04
print
"sss"
05
06
from
ctypes
import
*
07
08
test
=
cdll.LoadLibrary(
"./libtest.so"
)
09
10
test.test()
11
12
add
=
test.add
13
add.argtypes
=
[c_float, c_float]
# 参数类型,两个float(c_float内ctypes类型)
14
add.restype
=
c_float
15
16
print
add(
1.2
,
19.2
)
发
发的
Related posts:
- Flash/Python Socket之前使用Python socket都从socket.socket server_ …继续阅读 »...
- Python WebSocket Server手机中,使用HTML5中引入的WebSocket技术来取代PC端基于flash的 …继续阅读 »...
- Python 手册[url]http://www.uplinux.com/download/doc …继续阅读 »...
- Linux中C/C++头文件说明1、 Linux中一些头文件的作用: <assert.h>:ANSI …继续阅读 »...
- 及时阻止SSH暴力破解入侵者方法最近,老是发现有很多暴力破解SSH密码的入侵者,虽然服务器密码设置的很复杂,但是 …继续阅读 »...
转自:http://www.xinze.me/python-%E8%B0%83%E7%94%A8so-dll%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%BA%93/
- python 调用so dll动态链接库
- go调用动态链接库dll/so
- Lua直接调用动态链接库(DLL或so文件)
- 调用动态链接库*.so
- 动态链接库 so和dll
- centos学习:动态链接库 .so "dll"?
- python 3 调用c/c++ 动态链接库 *.dll
- python中调用动态链接库(C++,DLL)
- lua——alien库实现lua调用C动态链接库(dll、so)
- java调用动态库(.dll或.so)
- JNA调用C动态库dll、so
- java调用so动态链接库
- android 中调用 so 动态链接库
- Java JNI 调用 so 动态链接库
- Java JNI 调用 so 动态链接库
- Qt .so动态链接库调用,配置
- so动态链接库生成、调用
- Java JNI调用so动态链接库
- 作为一个新人,怎样学习嵌入式Linux
- 驱蚊大法
- 基于ARM的嵌入式TCP/IP协议的实现
- 【转载】vxworks点滴记录
- 12个有趣的c问题。
- python 调用so dll动态链接库
- 字符串模式匹配KMP算法
- java基本数据类型
- 静态成员变量
- android service 学习
- 嵌入式设备上的 Linux 系统开发
- 内存泄露检测工具
- Android操作系统11种传感器介绍
- 网络经济与企业管理