C のマクロに対応する Lisp 関数を作成したいと考えています。たとえば、ヘッダー ファイルでマクロとして定義されている win32 API に HIWORD が 1 つあります。
以下のように定義しようとしましたが、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)