关于C解析lua表结构的问题

燕雀安知鱼之乐 2016-05-06 05:03:01
我在lua程序中创建了一个表,表中存放的是表成员,想在C中读取表成员的成员,表的结构如下

local req = {};
req.opcode = GAME_OPCODE.CLI_PLAYCARD_REQ;
req.sSerialID = 1024;
req.nCardsCount = 1;
cards = {}
cards[1] = {}
cards[1].color = 0;
cards[1].value = 1;
cards[2] = {}
cards[2].color = 1;
cards[2].value = 3;
req.cards = cards;
sendToSdk(req)

我在C中获取协议要发送的信息

CCard* getCardsFlied(lua_State *L, const char *szKey)
{ OutputDebugString("join getCardsFlied ~~~~");
CCard cards[20];
lua_pushstring(L , szKey); //这个压入的的就是上面的req.cards
lua_gettable(L , -2);
int n = lua_objlen(L , -1);
for (int i = 0; i < n; i ++)
{
lua_rawgeti(L,1,i + 1);
char buf[20];
sprintf(buf,"\n%d",i +1);
OutputDebugString(buf);
lua_pop(L , 1);

}
return cards;

}

程序中得到的是card表,我想获取card表的成员color和value的值,请问我该怎么做
求大神帮忙,谢谢
...全文
138 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我在脚本之家上看到相关基础http://www.jb51.net/article/55096.htm 自己试验了一下,好像解决了

CCard* getCardsFlied(lua_State *L, const char *szKey)
{
	CCard cards[20];
	lua_pushstring(L, szKey);
	lua_gettable(L,-2);
	for(int i = 0; i < 20; i ++)
	{
		//初始化卡牌属性
	  
		cards[i].m_nColor = -1;
		cards[i].m_nValue = -1;

		//压人对应的卡牌Key值
		lua_pushnumber(L,i + 1);
		lua_gettable(L , -2);
		if (lua_istable(L,-1))
		{
			
			
			//压人卡牌参数"color"
			lua_pushstring(L , "color");
			lua_gettable(L , -2);
			cards[i].m_nColor = lua_tonumber(L , -1);
			lua_pop(L , 1);

			//压人卡牌参数"value"
			lua_pushstring(L , "value");
			lua_gettable(L , -2);
			cards[i].m_nValue = lua_tonumber(L , -1);
			lua_pop(L , 1);
		}
		lua_pop(L , 1);


#ifdef MB_OS_WIN
		char buf[50];
		sprintf(buf,"\n\t cards[%d]:(%d , %d)",i,cards[i].m_nColor,cards[i].m_nValue);
		OutputDebugString(buf);
#endif

	}


	return cards;
}
保存一下,做个笔记
标题SpringBoot与微信小程序结合的生猪养殖信息化管理系统研究AI更换标题第1章引言介绍生猪养殖信息化管理的研究背景、意义、现状及论文创新点。1.1研究背景与意义阐述生猪养殖信息化管理对提升养殖效率的重要性。1.2国内外研究现状分析国内外生猪养殖信息化管理系统的研究进展。1.3研究方法以及创新点概述SpringBoot与微信小程序结合的技术路径和创新点。第2章相关理论总结SpringBoot框架与微信小程序开发的相关理论。2.1SpringBoot框架理论介绍SpringBoot框架的特点、优势及在Web开发中的应用。2.2微信小程序开发理论阐述微信小程序的开发原理、架构及与后端服务的交互方式。2.3生猪养殖信息化管理理论概述生猪养殖信息化管理的核心概念、流程及需求。第3章系统设计详细介绍基于SpringBoot与微信小程序的生猪养殖信息化管理系统的设计方案。3.1系统架构设计系统的整体架构,包括前端、后端及数据库设计。3.2功能模块设计详细介绍系统的各个功能模块,如养殖管理、数据统计等。3.3数据库设计阐述数据库的设计思路、结构及关系。第4章系统实现阐述基于SpringBoot与微信小程序的生猪养殖信息化管理系统的实现过程。4.1SpringBoot后端实现介绍后端服务的开发环境、技术选型及实现细节。4.2微信小程序前端实现阐述前端界面的设计、开发及与后端服务的交互。4.3系统集成与测试系统的集成过程、测试方法及结果。第5章研究结果展示系统实现后的效果,包括性能、用户反馈等方面的分析。5.1系统性能分析从响应时间、并发处理等方面分析系统的性能。5.2用户反馈分析收集并分析用户对系统的使用反馈,评估系统的实用性。5.3对比方法分析对比传统生猪养殖管理与信息化管理的差异和优势。第6章结论与展望总结研究成果,提出未来研究方向。6.1研究结论概括系统的主要功能、性能及用户
yolov5 人体姿态异常检测系统代码与完整数据集(优质项目).zip该文件内程序已通过本地测试,可直接执行。用户只需依据说明文档设置运行环境即可使用。项目复杂度适中,内容由教学辅助人员审核,适用于教学及实际应用,具备良好实用性,可放心获取。yolov5 人体姿态异常检测系统代码与完整数据集(优质项目).zip该文件内程序已通过本地测试,可直接执行。用户只需依据说明文档设置运行环境即可使用。项目复杂度适中,内容由教学辅助人员审核,适用于教学及实际应用,具备良好实用性,可放心获取。yolov5 人体姿态异常检测系统代码与完整数据集(优质项目).zip该文件内程序已通过本地测试,可直接执行。用户只需依据说明文档设置运行环境即可使用。项目复杂度适中,内容由教学辅助人员审核,适用于教学及实际应用,具备良好实用性,可放心获取。yolov5 人体姿态异常检测系统代码与完整数据集(优质项目).zip该文件内程序已通过本地测试,可直接执行。用户只需依据说明文档设置运行环境即可使用。项目复杂度适中,内容由教学辅助人员审核,适用于教学及实际应用,具备良好实用性,可放心获取。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧