Python可以通过调用Dll中的到处符号调用C++.
新建一个QT的DLL项目:
class MyMath {
public:
int add(int a, int b);
int multiply(int a,int b);
};
extern "C" {
QTPYTHONDLL_EXPORT int addEx(int a, int b);
QTPYTHONDLL_EXPORT int multiplyEx(int a, int b);
QTPYTHONDLL_EXPORT void printMsg();
}
int MyMath::add(int a, int b) {
return a + b;
}
int MyMath::multiply(int a, int b) {
return a*b;
}
MyMath myMath;
int addEx(int a, int b) {
return myMath.add(a, b);
}
int multiplyEx(int a, int b) {
return myMath.multiply(a, b);
}
void printMsg() {
printf("Hello World!!!");
}
编译成DLL,然后把编译好的DLL复制到py文件对应的目录下面
Python调用DLL
import ctypes
dll = ctypes.cdll.LoadLibrary('./QtPythonDll.dll')
print(dll.addEx(2,3))
print(dll.multiplyEx(2,3))
print(dll.printMsg())
运行结果:
5
6
Hello World!!!14
aaa