2017-05-12 12 views
0

私はCCL-ココアブリッジのClozureが提供する "Hello World" のスクリプトを実行しようとしています:CCLココアブリッジ "hello world"が機能しない?

https://trac.clozure.com/ccl/wiki/CocoaBridge

(ショー - 赤 - ウィンドウ)を評価、これらのフォームを含むファイルをロードします赤いウィンドウが表示されます。

red-window.ccl
(in-package "CL-USER") 

(require "COCOA") 

(defclass red-view (ns:ns-view) 
() 
    (:metaclass ns:+ns-object)) 

(objc:defmethod (#/drawRect: :void) ((self red-view) (rect :<NSR>ect)) 
    (#/set (#/redColor ns:ns-color)) 
    (#_NSRectFill (#/bounds self))) 

(defun show-red-window() 
    (ccl::with-autorelease-pool 
    (let* ((rect (ns:make-ns-rect 0 0 300 300)) 
     (w (make-instance 'ns:ns-window 
       :with-content-rect rect 
       :style-mask (logior #$NSTitledWindowMask 
          #$NSClosableWindowMask 
          #$NSMiniaturizableWindowMask) 
       :backing #$NSBackingStoreBuffered 
       :defer t))) 
    (#/setTitle: w #@"Red") 
    (#/setContentView: w (#/autorelease (make-instance 'red-view))) 
    (#/center w) 
    (#/orderFront: w nil) 
    (#/contentView w)))) 

しかし、私はccl64を実行し、

(load "red-window.ccl") 
(show-red-window) 

を入力するとき、私はちょうど、端末上でこの出力を得る:

#<RED-VIEW <RedView: 0x4cd530> (#x4CD530)> 

と他には何が起こるように見えます。

何か不足していますか?私はCLとCocoaの両方に新しいです。

答えて

1

は赤いウィンドウの例でページが最後の10年前に更新されました

(gui:execute-in-gui #'(lambda() (show-red-window))) 

を試してみてください。 One of the other examplesからは、gui:execute-in-guiを含めると13日前にlast modifiedになりました。