版本 cocos2dx 3.13
之前写过一篇c++向lua传字符串的问题 http://blog.csdn.net/klyhssrs/article/details/52684784
现在发现反过来也有同样的问题,
自动生成的lua接口代码中使用的是luaval_to_std_string函数从lua中取传过来的字符串参数,不支持含0的字符串,字符串含0时将被截断。
修复方法:
//cocos2d-x\cocos\scripting\lua-bindings\manual\LuaBasicConversions.cpp
bool luaval_to_std_string(lua_State* L, int lo, std::string* outValue, const char* funcName)
{
//...
//...
if (ok)
{
//修改部分 start
//*outValue = tolua_tocppstring(L,lo,NULL,&len); ==>
size_t len = 0;
const char* buf = tolua_tocppstring(L, lo, NULL, &len);
(*outValue).clear();
(*outValue).append(buf, len);
//end
}
return ok;
}
//cocos2d-x\external\lua\tolua\tolua++.h
//增加len参数
static inline const char* tolua_tocppstring (lu