size_t value_len = 0;
const char *value = NULL;
if (lua_isstring(L2, -1)) {
value = lua_tolstring(L2, -1, &value_len);
lua_pop(L2, 1);
//printf("result: %s\n\n", value.c_str());
}
有线程调用不断的通过这里,是有可能导致这个错误的原因,能不能帮具体解释一下这些语句做了什么
lua_isstring方法在什么情况会导致内存报错?
VC++中一个关于lua脚本文件的方法lua_isstring,它是干什么用的,我有一段代码总在这里出错
答案:2 悬赏:80 手机版
解决时间 2021-01-25 05:24
- 提问者网友:抽煙菂渘情少年
- 2021-01-25 01:29
最佳答案
- 五星知识达人网友:有你哪都是故乡
- 2021-01-25 01:41
lua_isstring 是检测堆栈指定位置的值是否为字符串类型,看逻辑一般不会有错。不过看你说到多个线程调用到这里,个人猜测是你在线程中使用了同一个lua_State而没有采取互斥措施。你把线程中调用lua的地方加个互斥锁试试。
全部回答
- 1楼网友:孤老序
- 2021-01-25 02:57
搜一下:VC++中一个关于lua脚本文件的方法lua_isstring,它是干什么用的,我有一段代码总在这里出错
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯