python调用c++ ctype list传数组 或者 返回数组

本文展示了如何在Python中使用ctypes库调用C++代码,特别是涉及传入和传出数组的情况。示例包括创建DLL工程并将cpp文件编译为DLL,强调了Python与C++之间的32位或64位匹配的重要性,以及如何定义和使用二维数组确保内存结构的一致性,避免内存访问越界。
摘要由CSDN通过智能技术生成

示例1:

pycallclass.cpp:

#include <iostream>
using namespace std;
typedef unsigned char BYTE;
#define MAX_COUNT 20

struct tagOutCardResult_py
{
	BYTE							cbCardCount;					
	BYTE							cbResultCard1;
	BYTE							cbResultCard2;
	BYTE							cbResultCard3;
	BYTE							cbResultCard4;
	BYTE							cbResultCard5;
	BYTE							cbResultCard6;
	BYTE							cbResultCard7;
	BYTE							cbResultCard8;
	BYTE							cbResultCard9;
	BYTE							cbResultCard10;
	BYTE							cbResultCard11;
	BYTE							cbResultCard12;
	BYTE							cbResultCard13;
	BYTE							cbResultCard14;
	BYTE							cbResultCard15;
	BYTE							cbResultCard16;
	BYTE							cbResultCard17;
	BYTE							cbResultCard18;
	BYTE							cbResultCard19;
	BYTE							cbResultCard20;
};

struct tagOutCardResult
{
	BYTE							cbCardCount;					
	BYTE							cbResultCard[MAX_COUNT];		
	void clear()
	{
		cbCardCount = 0;
		for (int nIdx = 0;nIdx < MAX_COUNT;++nIdx)
		{
			cbResultCard[nIdx] = 0;
		}
	}	
	void topy(tagOutCardResult_py* ppy)
	{
		cout<<"topy function begin"<<endl;
		ppy->cbCardCount = cbCardCount;
		cout<<"topy function 1"<<endl;
		ppy->cbResultCard1 = cbResultCard[1 - 1];
		cout<<"topy function 2"<<endl;
		ppy->cbResultCard2 = cbResultCard[2 - 1];
		ppy->cbResultCard3 = cbResultCard[3 - 1];
		ppy->cbResultCard4 = cbResultCard[4 - 1];
		ppy->cbResultCard5 = cbResultCard[5 - 1];
		ppy->cbResultCard6 = cbResultCard[6 - 1];
		ppy->cbResultCard7 = cbResultCard[7 - 1];
		ppy->cbResultCard8 = cbResultCard[8 - 1];
		ppy->cbResultCard9 = cbResultCard[9 - 1];
		ppy->cbResultCard10 = cbResultCard[10 - 1];
		ppy->cbResultCard11 = cbResultCard[11 - 1];
		ppy->cbResultCard12 = cbResultCard[12 - 1];
		ppy->cbResultCard13 = cbResultCard[13 - 1];
		ppy->cbResultCard14 = cbResultCard[14 - 1];
		ppy->cbResultCard15 = cbResultCard[15 - 1];
		ppy->cbResultCard16 = cbResultCard[16 - 1];
		ppy->cbResultCard17 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值