利用Python中ctypes这个库,可以对C++动态库进行调用
一、编写C++程序:
#pragma once
#include
using namespace std;
#define MAIN_EXPORT __declspec(dllexport)
#ifdef __cplusplus
extern "C"
{
#endif
MAIN_EXPORT void runCPPFun();
MAIN_EXPORT int cppAddFun(int a, int b);
#ifdef __cplusplus
}
#endif // __cplusplus
#pragma once
#include "main.h"
MAIN_EXPORT void runCPPFun()
{
cout << "C++ Fun is run !" << endl;
}
MAIN_EXPORT int cppAddFun(int a, int b)
{
return a + b;
}
二、将C++程序导出dll动态库
项目属性配置一下编译就OK了。
三、编写Python代码
# -*- coding: utf-8 -*-
import ctypes
cpp = ctypes.cdll.LoadLibrary("F:\\other\\C++\\练习\\others\\python_run _C++\\x64\\Debug\\python_run _C++.dll")
a = 10
b = 20
cpp.runCPPFun()
sum = cpp.cppAddFun(a, b)
print(sum)
四、结果
五、注意
在C++程序中如果包含指针、引用、结构体等,需要对参数做相应特殊处理