2012-06-03 8 views
5

Estoy intentando utilizar la biblioteca de física de lista de ardillas en Racket utilizando el FFI que proporciona. Sin embargo, actualmente tengo problemas para conseguir que la FFI encuentre las funciones en la biblioteca de Chipmunk, aunque parece que carga la biblioteca correctamente.Problemas de FFI con raqueta y ardilla listada

Estoy utilizando la versión más reciente de Chipmunk (6.1.1) basada en Windows 8 con Visual Studio 2008. Tengo el indicador "CHIPMUNK_FFI" configurado para que se cargue el archivo chipmunk_ffi.h. Estoy construyendo el código bajo la configuración Release DLL con las opciones "Multi-Threaded DLL" y "Build as a dll". El código de la raqueta que estoy usando es el siguiente:

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

Y estoy consiguiendo el error:

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] 

Déjeme saber si usted necesita cualquier información adicional. Realmente apreciaría algo de ayuda con esto.

+1

Por cierto, que realmente debería probar el [lista de correo] (http://lists.racket-lang.org/users/) - Creo que Jay juega con un código de adhesión para esto o algún otro motor de física, entonces quizás puedas comenzar donde lo dejó ... –

Respuesta