;file usejna.clj ;Class/forNameの理由 ;コンパイル後までfoo.Bazは有効ではないため、 ;リーダーが読み込む時点ではfoo.Bazというクラスリテラルは無効である ;REPLでもコンパイルしてから実行すること ;(compile 'foo.usejna) ;(foo -3) (ns foo.usejna (:gen-class)) (import '(com.sun.jna Native Library)) (defn foo [x] (gen-interface :name foo.Baz :extends [com.sun.jna.Library] :methods [[abs [int] int]]) (let [msvcrt (Native/loadLibrary "msvcrt" (Class/forName "foo.Baz"))] (println (format "%d