Don't panic!
Better Make It Through Today. RSS Please read my disclaimer.
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))
02:48 | Add comment | #prog | PermaLink
Name
Email
Homepage
Security Word
Type in the security Word
Remember Me
Content (HTML not allowed)
ちょっとお手上げな件
LISPのソースをWindowsアプリケーションとしてビルドする方法。
展開したclisp<ビルドバージョン>\base下のlisp.exeとlispinit.memを使用する。LISPソースをhoge.lispとして、
これで実行ファイルが出来るんだけどね。できた「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))02:48 | Add comment | #prog | PermaLink