问题描述
- LuaBridge绑定字符串参数的函数失败
-
在LuaBridge中注册带有char* 作为参数的函数,会导致运行时的断言错误,例程如下:class A { protected: char* newname; public: A(char* _name) { newname = _name; } std::string getName() { return this->name; } void printName() { printf("Hello, my name is %s!n", this->newname); } };
注册代码如下
luabridge::getGlobalNamespace(L) .beginClass<A>("A") .addConstructor<void(*) (char *)>() .addFunction("getName", &A::getName) .addFunction("printName", &A::printName) .endClass();
在lua中的调用如下
local b = A('moo') b:printName()
然后运行时就会出现错误"assertion failed",如图所示
此问题不仅出现在注册类的构造函数上,实际上,任何的试图注册带有char*类型的函数都会导致此错误,比如下面的代码void UpdateMem(char* _mem) { ... // manipulate the memory }
请问有没有人遇见过这类问题,这样该如何解决传入指针,操作内存区的问题啊?
多谢!!
时间: 2025-01-19 05:33:27