2012-06-03 9 views
5

私は、それが提供するFFIを使用して、ラケットのChipmunk物理ライブラリを使用しようとしています。しかし、私は現在、ライブラリを正しく読み込んでいるように見えるのに、実際にFFIがChipmunkライブラリの関数を見つけるのに問題があります。ラケットとチップマンクのFFI問題

私はVisual Studio 2008でWindows 8上に構築されたChipmunk(6.1.1)の最新バージョンを使用しています。私はchipmunk_ffi.hファイルがロードされるように "CHIPMUNK_FFI"フラグを設定しています。私は、 "マルチスレッド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] 

は、あなたが任意のより詳細な情報が必要なら、私に教えてください。私は本当にこれにいくつかの助けに感謝します。

+1

を参照してください - 私はジェイは、このどちらかのためにグルーコードで演奏やと思いますいくつかの他の物理エンジン、おそらくあなたはどこから出発することができます... –

答えて