我目前有以下 lua 代码:

    g = engine.CGeometry()

    vertexes = {}

    vertexes[1] = 0
    vertexes[2] = 0
    vertexes[3] = 0

    vertexes[4] = 0
    vertexes[5] = -1
    vertexes[6] = 0

    vertexes[7] = -1
    vertexes[8] = 0
    vertexes[9] = 0

    print "adding vertexes"
    g:SetVertexes(vertexes)

其中 g:SetVertexes() 在 C++ 中实现为:
void CGeometry::SetVertexes(double* vertexes){
    this->vertexes = vertexes;
}

导致此错误:
adding vertexes
PANIC: unprotected error in call to Lua API (Error in SetVertexes (arg 2), expected 'double *' got 'table')
Press any key to continue . . .

有任何想法吗?

最佳答案

试着写:

void CGeometry::SetVertexes(double vertexes[]);

在接口(interface)定义中。从文档来看,SWIG 区分了指针和数组。

关于c++ - SWIG Lua 和传递数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/557523/

10-11 16:17