最近在学习common lisp. 发现了这个CFFI可以做对c动态库的链接. 其中, 它有这么一个宏用来在lisp中注册动态库中的函数
(defcfun (c-name lisp-name library) return-type &body args-type)
用起来就是
(defcfun ("Beep" beep kernel32) :int
(windows-hwnd hwnd)
(duration :int)
(freq :int))
如果有很多函数要用,一个个注册显得不方便 因此我想写这样一个宏,一次性注册某个动态库下我想要的函数,比如这样
(defwin32funs kernel32
(beep
"Beep" :int
(window-hwnd hwnd)
(duration :int)
(freq :int))
(open-process
;; blabla……
))
想来想去没有什么好的方案,还望各位道友相助