最近需要使用Python调用C/C++功能,于是进行了一些相关调研。总体来说,Python调用C功能还算是相对比较简单,主要涉及ctypes这个函数库。
ctypes 是 Python 的外部函数库。它提供了与 C 兼容的数据类型,并允许调用C共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装。
基本数据类型的使用
ctypes定义了一些与C兼容的数据类型:
本篇主要关注跨语言调用时指针的处理方法,对于更全面的介绍,可参考:ctypes --- Python 的外部函数库 — Python 3.7.13 文档
下面用一个小例子来介绍Python调用C/C++动态库的方法。
C代码:
#include "stdio.h"
#include <iostream>
#ifdef __cplusplus
extern "C"
{
#endif
using namespace std;
// test for input char pointer
void print_string(char* str)
{
printf("This is c code: print_string()