首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拍子和花栗鼠的FFI问题

拍子和花栗鼠的FFI问题
EN

Stack Overflow用户
提问于 2012-06-04 01:58:10
回答 1查看 419关注 0票数 5

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

我使用的是基于Windows 8和Visual Studio2008的最新版本的Chipmunk (6.1.1)。我设置了"CHIPMUNK_FFI“标志,以便加载chipmunk_ffi.h文件。我在使用“多线程DLL”和“构建为dll”的DLL配置下构建代码。我使用的球拍代码如下:

代码语言:javascript
复制
#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)))

我得到了一个错误:

代码语言:javascript
复制
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]

如果你需要任何进一步的信息,请告诉我。我真的很感激在这方面能帮上忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-04 03:33:59

某些函数(如cpvadd导出为_cpvadd)。

请参阅http://code.google.com/p/chipmunk-physics/source/browse/trunk/include/chipmunk/chipmunk_ffi.h

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10872648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档