python通过swig调用c++dll时指针的用法
2014-11-13 17:53
676 查看
当Python和C++的接口涉及到缓冲区时,可以在Python中创建缓冲区,再将缓冲区的指针传给C++函数(通过创建额外的函数进行转换)。实例如下:
Python端:
1.获取str表示的二进制数据(读取文件等)。
2.利用ctypes包中的create_string_buffer(str)函数创建缓冲区。
3.获取int表示的缓冲区地址,利用addressof(buf)函数,buf为2中创建的缓冲区对象。
4.利用编写的额外转换函数int2voidp(address)函数将int转换为C++的void*,address为3中获取的int表示的缓冲区地址。
5.将得到的void*对象传给C++函数。
C++端:
1.利用Python传来的void*进行调用,也可以转换为char*等。
Python端:
1.获取str表示的二进制数据(读取文件等)。
2.利用ctypes包中的create_string_buffer(str)函数创建缓冲区。
3.获取int表示的缓冲区地址,利用addressof(buf)函数,buf为2中创建的缓冲区对象。
4.利用编写的额外转换函数int2voidp(address)函数将int转换为C++的void*,address为3中获取的int表示的缓冲区地址。
5.将得到的void*对象传给C++函数。
C++端:
1.利用Python传来的void*进行调用,也可以转换为char*等。
相关文章推荐
- 通过SWIG封装C/C++代码被Python调用
- Windows下python使用SWIG调用C++ dll
- Java调用Delphi DLL(通过C++调用和直接调用两种方式)
- Python 通过ctypes调用 ICTCLAS3.0.DLL
- 利用swig实现python调用C/C++的方法
- C#调用C++dll 中具有高维指针参数的接口函数
- python调用c/c++写的dll
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- C# 调用C++DLL传递指向指针的指针参数的方法
- c# 调用 研华库函数中 C++ 非托管 Dll 一例(包含指针成员的结构体的调用) [转贴]
- C++通过DLL调用C#代码
- C#通过p/invoke调用C++ DLL
- C++通过DLL调用C#代码
- C#中调用C++的dll的参数为指针类型的导出函数
- C#通过p/invoke调用C++ DLL (转)
- C# 通过dllImport 调用C++ Dll 小总结
- Silverlight5通过P/Invoke调用自定义C/C++ DLL(Lua)
- /C/C++ DLL在其它语言中的调用 结构体/数组 指针
- 通过函数指针动态调用 dll 中的函数
- 通过P/Invoke调用32位C++ DLL时,一定要将平台改为X86