背景
要在python中调用c或者c++写的dll是我们在实际应用中常常会遇到的情况。
参考文章:ctypes的运用(把一个numpy数组传入c中)
c的dll程序
dll程序分(__fastcall,__cdecl,__stdcall)几种,我用的是在vs环境下的__cdecl,这方面的基础知识请自行百度,先看dll的代码:
h文件
// 因为给python测试,默认不给c\c++程序调用,所以直接写__declspec(dllexport),
// 如果要给c\c++调用,需要自己定义宏决定__declspec(dllexport)是导入还是导出
#include <windows.h>
extern "C"
{
__declspec(dllexport) int __cdecl testNumpy(uint16* pAOData, int len);
__declspec(dllexport) int __cdecl testNumpy_plus(uint16* pAOData, int len);
};
cpp文件
#include "dxx.h"
// 最简单的显示出宿主程序发过来的数据
__declspec(dllexport) int __cdecl testNumpy(uint16* pAOData, int len)
{
for(int i=0;i<len;i++)
{
printf("%d