lua返回c++中的字符串

Lua 中有一个函数:

STRING getClassesList()

它返回一个字符串,可以在 c++ 中获得它:

这种方式无法工作:

const char * ClassesStr;
Lua_getglobal (L, "getClassesList");
Lua_pcall (L, 1, 1, 0);
ClassesStr = lua_tostring (L, 1);

堆栈:'readQuikAgent' 'attempt to call a table value'

该函数旨在获取在通信会话期间从服务器发送的类代码列表。列表中的类代码由逗号“,”分开。在接收到的行末始终附加符号“,”。

呼叫格式:

STRING getClassesList ()

示例:

List = getClassesList ()

通过上述代码行结果,list 变量包含形式如下的字符串:

OPTEXP,USDRUB,PSOPT,PSFUT,SPBFUT

点赞
用户5129715
用户5129715

'attempt to call table value' 表示栈顶的项目是一个 table,而不是一个 function

因此,getglobal 的结果是一个表,不能调用它。

2017-05-25 06:19:03
用户7879485
用户7879485

这个代码有效(感谢 siffiejoe):

lua_pcall(L, 0, 1, 0);
ClassesStr = lua_tostring(L, -1);
2017-05-25 08:28:15