ちょっとお手上げな件

LISPのソースをWindowsアプリケーションとしてビルドする方法。

展開したclisp<ビルドバージョン>\base下のlisp.exeとlispinit.memを使用する。LISPソースをhoge.lispとして、

lisp.exe -M lispinit.mem -x "(load \"hoge.lisp\")
 (ext:saveinitmem \"hoge\" :init-function #'main :executable t :norc t)"

これで実行ファイルが出来るんだけどね。できた「hoge.exe」をダブルクリックすると「なんとかdllがねーYO!」と怒られるので、あらかじめclisp<ビルドバージョン>\baseにパスを通しておくか、「libintl-8.dll」と「readline5.dll」(と「libiconv-2.dll」も?)をそれらしきところにコピーしておくと吉。

で、もう一回ダブルクリックすると、今度はCommand Promptも立ち上がってくるという大罠。

どうすればいいんだろうな?

ちなみに、ソースはこんな感じ。

(use-package "FFI")
(def-call-out messagebox
    (:name "MessageBoxA")
    (:library "user32.dll")
    (:arguments (hwnd int) (text c-string) (capt c-string) (type uint))
    (:return-type int)
    (:language :stdc))

(defun main()
  (messagebox 0 "Hello World!" "Message" 0)
  (quit))