是的。
//test.cpp
1 #include
2 #include
3 using namespace std;
4
5 vector g_vecVar;
int g = 1;
6 extern "C"
7 {
8 void func()
9 {
g++;
10 g_vecVar.push_back(g);
11
12 for( int i = 0; i
13 printf( "%d\n", g_vecVar.at(i));
14 }
15 }
g++ test.cpp -fPIC -shared test.so
1 # -*- encoding: utf-8 -*-
2
3 import os
4 import ctypes
5
6 class test():
7 def __init__(self,):
8 self.lib_handle = ctypes.CDLL("./test.so")
9 self.testfunc = self.lib_handle.func
10
11
12 if __name__ == "__main__":
13 mytest = test();
14 for i in range(10):
15 mytest.testfunc();
执行python代码,输出结果为
2
2
3
2
3
4
2
3
4
5
.
.
.
.
.
.