Python天天美味(29) - 调用VC++的动态链接库(DLL)
2008-07-23 19:47
676 查看
1. 首先VC++的DLL的导出函数定义成标准C的导出函数:
#ifdef LRDLLTEST_EXPORTS#define LRDLLTEST_API __declspec(dllexport)
#else
#define LRDLLTEST_API __declspec(dllimport)
#endif
extern "C" LRDLLTEST_API int Sum(int a , int b);
extern "C" LRDLLTEST_API void GetString(char* pChar);
//a + b
LRDLLTEST_API int Sum(int a , int b)
{
return a + b;
}
//Get a string
LRDLLTEST_API void GetString(char* pChar)
{
strcpy(pChar, "Hello DLL");
}
2. Python中调用如下:
from ctypes import *fileName="LRDllTest.dll"
func=cdll.LoadLibrary(fileName)
str = create_string_buffer(20)
n = func.Sum(2, 3)
func.GetString(str)
print n
print str.raw
关于C语言中的一些参数类型详见:http://www.python.org/doc/2.5/lib/node454.html
3. 输出结果:
5Hello DLL
Python 天天美味系列(总)
Python 天天美味(27) - 网络编程起步(Socket发送消息)Python 天天美味(28) - urlopen
Python 天天美味(29) - 调用VC++的动态链接库(DLL)
Python 天天美味(30) - python数据结构与算法之快速排序
Python 天天美味(31) - python数据结构与算法之插入排序
...
相关文章推荐
- Python 调用VC++的动态链接库(DLL)
- 【VC编程技巧】动态链接库☞1.1调用Dll中的一个图标
- VC与Matlab混合编程之调用动态链接库dll<二>
- python 3 调用c/c++ 动态链接库 *.dll
- python中使用ctypes调用MinGW生成的动态链接库(dll)
- labview调用VC++生成的动态链接库DLL
- VC++和C++builder互相调用动态链接库DLL(VC++编的)笔记
- Python调用C的DLL和VC调用有什么区别?
- VC中使用动态链接库DLL:静态调用和动态调用
- vc调用动态链接库DLL和静态链接库Lib的四种方法
- VC中使用动态链接库DLL:静态调用和动态调用
- python中调用动态链接库(C++,DLL)
- Java jna学习之----VC++2010创建并调用动态链接库dll
- VC++:创建,调用MFC动态链接库(扩展DLL)
- python中使用ctypes调用MinGW生成的动态链接库(dll)
- DLL(Dynamic Link Libraries)VC动态链接库专题
- VC++动态链接库(DLL)编程深入浅出
- Python调用DLL或SO
- Python天天美味(25) - 深入理解yield