Tag: chipmunk

常见的lisp,CFFI和实例化c结构

我一直在谷歌上,约3小时寻找解决这个“问题”的解决方案。 我试图弄清楚如何使用CFFI在lisp中实例化C结构。 我在c中有一个结构: struct cpVect{cpFloat x,y;} 简单吧? 我有自动生成的CFFI绑定(swig,我认为)到这个结构: (cffi:defcstruct #.(chipmunk-lispify “cpVect” ‘classname) (#.(chipmunk-lispify “x” ‘slotname) :double) (#.(chipmunk-lispify “y” ‘slotname) :double)) 这会生成一个带有插槽的结构“VECT”:X和:Y,外部插槽名称确认(请注意我既没有生成绑定也没有编写C库(chipmunk physics),但实际的函数是从lisp调用的正好)。 我已经搜索了很多,也许我已经看过它100次并且掩盖了它,但我无法弄清楚如何在lisp中创建一个cpVect实例以用于其他function。 注意function: cpShape *cpPolyShapeNew(cpBody *body, int numVerts, cpVect *verts, cpVect offset) 不仅需要一个cpVect,还需要一个指向一组cpVects的指针,这让我想到了第二个问题:如何创建指向一组结构的指针? 我去过http://common-lisp.net/project/cffi/manual/html_node/defcstruct.html并尝试了代码,但得到“错误:未绑定变量:PTR”(我在Clozure CL中),更不用说看起来只返回一个指针,而不是一个实例。 我是lisp的新手,到目前为止一直非常强大,但这是我遇到的第一个真正的问题,我无法弄明白。 谢谢!