这是我的 C++ 代码:
// tolua_begin
const char* GetSomeString() {
std::string result;
// do something
return result.c_str();
}
// tolua_end
我知道函数何时返回,result
将被释放,如果我在 lua 中调用它,lua 将一无所获。我需要new
一个来禁止它被释放。但这会导致内存泄漏。所以我应该让 lua 拥有返回值的所有权。
我知道如何使用lua_State
. 但是我使用注释将我的 c++ 函数暴露给 lua,所以我想知道是否有类似的方法来实现它?