lua 调用C++ 的问题
class TestBasic
{
public:
TestBasic(){};
int add(int a){ return a+2;}
};
class CCObject
{
....
}
class TestA : public CCObject, public TestBasic
{
int m_nA;
public:
TestA(){}
static TestA* ta(int a){ TestA* t = new TestA; t->autorelease(); t->init(a); return t; }
void init(int a){m_nA = a;}
int getA(){return m_nA;}
};
===================
lua 代码:
local testa = TestA:ta(3)
local b1 = testa:getA()
testa:add(2) --- 这里出错 找不到add方法
如果把 TestA 类改成
class TestA : public CCObject, public TestBasic
{
....
}
这时候可以正确执行
也就是 TestA 继承了多个类 lua里找不到第2个基类里的方法吗?
{
public:
TestBasic(){};
int add(int a){ return a+2;}
};
class CCObject
{
....
}
class TestA : public CCObject, public TestBasic
{
int m_nA;
public:
TestA(){}
static TestA* ta(int a){ TestA* t = new TestA; t->autorelease(); t->init(a); return t; }
void init(int a){m_nA = a;}
int getA(){return m_nA;}
};
===================
lua 代码:
local testa = TestA:ta(3)
local b1 = testa:getA()
testa:add(2) --- 这里出错 找不到add方法
如果把 TestA 类改成
class TestA : public CCObject, public TestBasic
{
....
}
这时候可以正确执行
也就是 TestA 继承了多个类 lua里找不到第2个基类里的方法吗?
...全文
相关推荐
lua调用c++动态库的简单示例
在Lua中,我们可以这样调用:```lualocal ffi = require("ffi")-- 定义C类型和函数原型ffi.cdef[[ void hello_from_cpp();]]-- 加载
cpp-lua扩展库类似于golang的api函数
在C++中使用Lua扩展库通常涉及到以下几个核心知识点:1. **Lua C API**:这是C++与Lua交互的基础,提供了一系列的C函数,使得C++代码可以直接调用和被Lua脚本调用。
XMLLua2Cpp:使用过的XML自动创建lua和C ++相关代码和测试代码
然而,将C++代码与Lua绑定是一项繁琐的任务,需要手动编写大量的适配器代码。XMLLua2Cpp解决了这个问题,它能根据XML文件自动生成这些适配器,使得C++对象能够在Lua环境中无缝调用。
Lua Thinker
通过这些API,开发者可以轻松地在C++代码中调用Lua函数,或者在Lua脚本中访问C++的对象和函数,实现跨语言的数据交换和功能调用。2.
luascript_source_lua_Tibia_zip_
这可能涉及到对 Lua API 的误用、类型转换问题、错误处理或者对 Lua 调用栈的理解不准确等常见问题。


