我想创建一个 lisp 函数,它对应于 C 中的一个宏。例如,win32 API 中有一个 HIWORD,它在头文件中定义为宏。
我试图将其定义如下,但被告知 HIWORD 未解决。
CL-USER 4 > (hiword #xFFFFFFFF)
Error: Foreign function HIWORD trying to call to unresolved external function "HIWORDW".
我只想知道如何为 C 宏(如 C 函数)创建包装器。
(fli:define-c-typedef DWORD (:unsigned :long))
(fli:define-c-typedef WORD (:unsigned :short))
(fli:define-foreign-function
(HIWORD "HIWORD" :dbcs)
((dwVal dword))
:result-type word :calling-convention :stdcall)