C++传一个table给lua判断,再由lua的返回值,传给客户端运行.

suxingang325 2013-11-12 05:01:16
希望朋友们可以给一个指引,一个例子
...全文
408 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
示申○言舌 2013-11-12
  • 打赏
  • 举报
回复
给你部分代码做参考。 C++调用lua
            lua_getglobal( g_pLua, "OnConfirmMessage");
            if( lua_pcall( g_pLua, 0, 1, 0 ) != 0 )
            {
                AppendMessage( "调用OnConfirmMessage出错");
                SetInfoText( "脚本OnConfirmMessage中可能存在错误,请确认。");
                JustStop();
                if( MessageBox( hMainDlg, "调用OnConfirmMessage时出现错误,要查看详细信息吗?", "错了", MB_YESNO ) == IDYES )
                    MessageBox( hMainDlg, lua_tostring( g_pLua, -1 ), "详细信息如下", MB_OK );
                lua_pop( g_pLua, 1 );
                return;
            }
            else
            {
                if( ! ( lua_isboolean( g_pLua, -1 ) && lua_toboolean( g_pLua, -1 )))
                {
                    AppendMessage( "OnConfirmMessage失败");
                    SetInfoText( "OnConfirmMessage返回了错误值。");
                    JustStop();
                    lua_pop( g_pLua, 1 );
                    return;
                }
                lua_pop( g_pLua, 1 );
            }
Lua调用C++
static int StringToInt( lua_State * pState )
{
	if( lua_gettop( pState ) != 1 )
	{
		lua_pushinteger( pState, -1 );
		return 1;
	}
	if( ! lua_isstring(pState, 1 ))
	{
		lua_pushinteger( pState, -1 );
		return 1;
	}
	const char * pStr = lua_tostring( pState, 1 );

	lua_pushinteger( pState, atoi( pStr ));
	return 1;
}
Adol1111 2013-11-12
  • 打赏
  • 举报
回复
引用 1 楼 max_min_ 的回复:
思路你自己都有了!就差动动手写写代码了阿!
++ 自己写好代码,在贴上来讨论,比单纯看别人的代码效果要好的多。
max_min_ 2013-11-12
  • 打赏
  • 举报
回复
思路你自己都有了!就差动动手写写代码了阿!

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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