我目前有以下 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/