Racket 外国金融机构对球拍和花栗鼠的问题

Racket 外国金融机构对球拍和花栗鼠的问题,racket,ffi,chipmunk,Racket,Ffi,Chipmunk,我正在尝试使用Racket中的花栗鼠物理库,使用它提供的FFI。然而,我目前在让FFI在花栗鼠库中查找函数方面遇到了问题,尽管它似乎正确加载了库 我使用的是最新版本的花栗鼠(6.1.1),它是用VisualStudio2008在Windows8上构建的。我设置了“CHIPMUNK_FFI”标志,以便加载CHIPMUNK_FFI.h文件。我正在使用“多线程DLL”和“构建为DLL”选项在发布DLL配置下构建代码。我使用的球拍代码如下: #lang scheme (require ffi/unsa

我正在尝试使用Racket中的花栗鼠物理库,使用它提供的FFI。然而,我目前在让FFI在花栗鼠库中查找函数方面遇到了问题,尽管它似乎正确加载了库

我使用的是最新版本的花栗鼠(6.1.1),它是用VisualStudio2008在Windows8上构建的。我设置了“CHIPMUNK_FFI”标志,以便加载CHIPMUNK_FFI.h文件。我正在使用“多线程DLL”和“构建为DLL”选项在发布DLL配置下构建代码。我使用的球拍代码如下:

#lang scheme

(require ffi/unsafe
         ffi/unsafe/define)

(define chipmunk (ffi-lib "./chipmunk"))
(define-ffi-definer define-chipmunk chipmunk)

(define _cpFloat _double)
(define cpFloat? real?)
(define _cpDataPointer _pointer)
(define _size_t _ulong)
(define _cpHashValue _size_t)

(define-cstruct _cpVect
                ([x _cpFloat]
                 [y _cpFloat]))

(define cpv
  (get-ffi-obj "cpvadd" chipmunk (_fun _cpVect _cpVect -> _cpVect)))
我得到了一个错误:

ffi-obj: couldn't get "cpvadd" from "chipmunk.dll" (The specified procedure could not be found.; errno=127)

 === context ===
C:\Program Files (x86)\Racket\collects\ffi\unsafe.rkt:180:2: get-ffi-obj*
C:\Users\me.000\AppData\Roaming\Racket\planet\300\5.2.1\cache\jaymccarthy\chipmunk.plt\1\0\chipmunk-ffi-new.ss: [running body]
C:\Users\me.000\AppData\Roaming\Racket\planet\300\5.2.1\cache\jaymccarthy\chipmunk.plt\1\0\chipmunk-new.rkt: [traversing imports]
C:\Users\me.000\AppData\Roaming\Racket\planet\300\5.2.1\cache\jaymccarthy\chipmunk.plt\1\0\main.rkt: [traversing imports]
C:\Users\me.000\Dropbox\Code\workspace-racket\learning\main.rkt: [traversing imports]
如果你需要任何进一步的信息,请告诉我。我将非常感谢您的帮助。

一些功能(如
cpvadd
将导出为
\u cpvadd


顺便说一句,你真的应该试试——我认为Jay为这个或其他物理引擎使用了胶水代码,所以也许你可以从他停止的地方开始。。。