2012-06-03 15 views
5

Sağladığı FFI'yi kullanarak Racket'teki Chipmunk fizik kitaplığını kullanmaya çalışıyorum. Ancak, şu anda kitaplığı doğru şekilde yüklüyormuş gibi görünmesine rağmen, FFI'nin Chipmunk kütüphanesindeki işlevleri bulmasıyla ilgili sorunlar yaşıyorum.FFI Racket ve Chipmunk ile İlgili Sorunlar

Visual Studio 2008 ile Windows 8 üzerine kurulu olan Chipmunk'un (6.1.1) en son sürümünü kullanıyorum. "CHIPMUNK_FFI" bayrağı ayarlanmış ve böylece chipmunk_ffi.h dosyası yüklü. Sürüm DLL yapılandırması altında "Multi-Threaded DLL" ve "Build dll olarak" optoins kullanılan kod altında yapıyorum.

#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))) 

Ve hatası alıyorum:

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] 

Eğer daha fazla bilgiye ihtiyacınız varsa bana bildirin şöyle kullanıyorum Raket kodudur. Bununla ilgili biraz yardım isterim.

+1

görün, gerçekten [posta listesi] deneyin (http://lists.racket-lang.org/users/) olmalıdır - Jay için tutkal kodu ile oynadığını düşünüyorum ya bu ya da başka bir fizik motoru, belki de bıraktığı yerden başlayabilirsin ... –

cevap