封装C++

利用Ctypes封装C++比较便捷,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>

#ifdef __cplusplus
extern "C" {
#endif

using namespace std;

int plus(int a,int b)
{
return a+b;
}

int decline(int a,int b)
{
return a-b;
}

#ifdef __cplusplus
} // end extern "C"
#endif
  • 在头文件后添加封装起始标记
  • 在尾部添加封装结束标记
  • 中间选中后点击shift+tab统一空出一个tab位

最后在控制台中输入如下命令:

1
g++ -fPIC -shared test.cpp -o test.so
  • test.cpp为你的文件名
  • test.so为你期望的封装库名

调用C++函数

该文章即采用Ctypes调用C++的函数,如下:

1
2
3
4
5
6
7
8
9
10
11
12
from ctypes import cdll

# g++ -fPIC -shared test.cpp -o test.so

test = cdll.LoadLibrary(r".\Library_client\test.so")

---less---

if plus == 'plus':
res = test.plus(num1, num2)
else:
res = test.decline(num1, num2)

调用C++类

请参阅该文章

相关项目

更多

Ctypes手册