lua-LuaBridge绑定字符串参数的函数失败

问题描述

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

lua-LuaBridge绑定字符串参数的函数失败的相关文章

.net-C#调用c++的dll执行带字符串参数的函数时遇到的问题

问题描述 C#调用c++的dll执行带字符串参数的函数时遇到的问题 我在c++项目中实现函数: extern "C" __declspec(dllexport) int FUNC1(const char* xmlSta, char* fileOut) { return 0; } 然后编译成动态库a.dll,并在C#项目中引用, 用静态加载的方式,是可以运行的,代码如下(只写调用的部分): [DllImport("a.dll", EntryPoint = "

JavaScript 事件属性绑定带参数的函数_javascript技巧

例如不能采用这种调用方式:element.onclick = test();element.onclick = test(arg1,arg2);只能通过element.onclick = function(){ ... };或者element.onclick = test这种方式来实现,所以无法给函数传递参数.参考了大量的网上资料,解决这个问题的方式,以代码为例,如下所示: 复制代码 代码如下: function Handler() { }; Handler.prototype = { /* *

LUA中的字符串函数库

Lua解释器对字符串的支持很有限.一个程序可以创建字符串并连接字符串,但不能截取子串,检查字符串的大小,检测字符串的内容.在Lua中操纵字符串的功能基本来自于string库. 字符串库中的一些函数是非常简单的: string.len(s)          返回字符串s的长度: string.rep(s, n)      返回重复n次字符串s的串:你使用string.rep("a", 2^20)可以创建一个1M bytes的字符串(比如,为了测试需要): string.lower(s)

jQuery支持动态参数将函数绑定到事件上的方法

这篇文章主要介绍了jQuery支持动态参数将函数绑定到事件上的方法,实例分析了两种支持动态参数的函数绑定技巧,需要的朋友可以参考下     本文实例讲述了jQuery支持动态参数将函数绑定到事件上的方法.分享给大家供大家参考.具体分析如下: 下面的js代码提供了两种方法用于绑定函数到事件,其中方法二可以传递动态参数,非常实用 ? 1 2 3 4 5 6 7 8 9 //方法一 $('#foo').click(function(event) { alert('User clicked on "fo

php-PHP调用 SAP RFC函数,传入字符串参数,RFC接收到的是空字符串

问题描述 PHP调用 SAP RFC函数,传入字符串参数,RFC接收到的是空字符串 $result = $sap->callFunction( "XXX", array( array( "IMPORT", "I_ZCZLX", "1" ), array( "IMPORT", "I_WRITER", "MAO" ), array( "IMPORT&quo

算法 优化-编写一个函数,该函数将筛选出两个字符串参数中相同的字符,并按字母序进行排序后返回

问题描述 编写一个函数,该函数将筛选出两个字符串参数中相同的字符,并按字母序进行排序后返回 本题是某欧外企面试题,下面给出一个我当时的C语言解法,希望请教各位高手们更为高效的解法. char *func(const char *s1, const char *s2) { char temp[256];//ascii_table memset(temp, 0, sizeof(temp)); char *p1 = s1, *p2 = s2; int len = 0; for(; *p1!=0; p1

jQuery支持动态参数将函数绑定到事件上的方法_jquery

本文实例讲述了jQuery支持动态参数将函数绑定到事件上的方法.分享给大家供大家参考.具体分析如下: 下面的js代码提供了两种方法用于绑定函数到事件,其中方法二可以传递动态参数,非常实用 //方法一 $('#foo').click(function(event) { alert('User clicked on "foo."'); }); //方法二, 支持动态传参 $('#foo').bind('click', {test1:"abc", test2:"

js html-在线等,急(大神帮帮忙):js动态嵌入html代码,代码中调用函数,当传参为字符串时,函数没有响应

问题描述 在线等,急(大神帮帮忙):js动态嵌入html代码,代码中调用函数,当传参为字符串时,函数没有响应 <!DOCTYPE html> <br> function insert()<br> {<br> var a="jioho";<br> var str="<table><tr><button type='button' onclick='test("+ a+"

jQuery setTimeout传递字符串参数报错的解决方法_jquery

当你打算调用一些jQuery代码显示隐藏的一个元素,并调用setTimeout()在一段延时之后设置其HTML的内容: 整个页面的代码是这样的. 复制代码 代码如下: <span style="font-size:18px;"><html> <head> <title></title> </head> <body> <a href="#" id='heihei' onclick