python call c++

转载
https://www.geeksforgeeks.org/how-to-call-c-c-from-python/

geek.cpp

#include <iostream> 
class Geek{ 
	public: 
		void myFunction(){ 
			std::cout << "Hello Geek!!!" << std::endl; 
		} 
}; 

extern "C" { 
	Geek* Geek_new(){
		return new Geek(); 
	} 
	
	void Geek_myFunction(Geek* geek){
		geek -> myFunction(); 
	} 
}

int main() 
{ 
	// Creating an object 
	Geek t; 

	// Calling function 
	t.myFunction(); 

	return 0; 
} 

pycallgeek.py

# import the module 
from ctypes import cdll 

# load the library 
lib = cdll.LoadLibrary('./libgeek.so') 

# create a Geek class 
class Geek(object): 

	# constructor 
	def __init__(self): 

		# attribute 
		self.obj = lib.Geek_new() 

	# define method 
	def myFunction(self): 
		lib.Geek_myFunction(self.obj) 

# create a Geek class object 
f = Geek() 

# object method calling 
f.myFunction()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值