没有合适的资源?快使用搜索试试~ 我知道了~
首页python与C、C++混编的四种方式(小结)
资源详情
资源评论
资源推荐

python与与C、、C++混编的四种方式混编的四种方式(小结小结)
主要介绍了python与C、C++混编的四种方式(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作
具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
混编的含义有两种,
一种是在python里面写C
一种是C里面写python
本文主要是进行简化,方便使用。
#####################################################################################################
第一种、第一种、Python调用调用C动态链接库(利用动态链接库(利用ctypes))
pycall.c
/***gcc -o libpycall.so -shared -fPIC pycall.c*/
#include <stdio.h>
#include <stdlib.h>
int foo(int a, int b)
{
printf("you input %d and %d", a, b);
return a+b;
}
pycall.py
import ctypes
ll = ctypes.cdll.LoadLibrary
lib = ll("./libpycall.so")
lib.foo(1, 3)
print '***finish***'
运行方法:
gcc -o libpycall.so -shared -fPIC pycall.c
python pycall.py
第第2种、种、Python调用调用C++(类类)动态链接库(利用动态链接库(利用ctypes))
pycallclass.cpp
#include <iostream>
using namespace std;
class TestLib
{
public:
void display();
void display(int a);
};
void TestLib::display() {
cout<<"First display"<<endl;
}
void TestLib::display(int a) {
cout<<"Second display:"<<a<<endl;
}
extern "C" {
TestLib obj;
void display() {
obj.display();
}
void display_int() {
obj.display(2);
}
}
pycallclass.py
import ctypes
so = ctypes.cdll.LoadLibrary
lib = so("./libpycallclass.so")
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0