How to call C++ functions of a class from a Python
本问题已经有最佳答案,请猛点这里访问。
我尝试了链接:从Python调用C/C++?但是我不能这样做,这里我有一个声明外部"c"的问题,所以请建议假设我有一个名为"function.cpp"的函数,并且我必须在python代码中调用这个函数。function.cpp是:
1 2 3 4 5 6 7 8 9 10 11 12 | int max(int num1, int num2) { // local variable declaration int result; if (num1 > num2) result = num1; else result = num2; return result; } |
然后我可以在Python中调用这个函数,因为我是C++的新手。我听说过"赛通",但我不知道。
自从您使用C++,Disable name mangling using
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #ifdef __cplusplus extern"C" #endif int max(int num1, int num2) { // local variable declaration int result; if (num1 > num2) result = num1; else result = num2; return result; } |
Compile it into some DLL or shared object:
ZZU1
现在你可以用
1 2 3 4 5 6 7 8 9 | >>> from ctypes import * >>> >>> cmax = cdll.LoadLibrary('./test.dll').max >>> cmax.argtypes = [c_int, c_int] # arguments types >>> cmax.restype = c_int # return type, or None if void >>> >>> cmax(4, 7) 7 >>> |