2012-07-08 29 views
1

我正在嘗試使用ocaml圖形模塊。 行:Ocaml Graphics.open_graph將無法在腳本模式下工作

#Graphics.open_graph "";; 

工作正常交互模塊中,即一個小窗口彈出的X11白色背景。 然而,當我嘗試使用腳本模式 - 把此行的一個文件,然後編譯:

ocamlc -o a.out graphics.cma code.ml 

只有X11沒有窗口彈出,但開始。 正在使用mac。有人知道爲什麼謝謝。


跟帖:

似乎在腳本模式的彈出窗口將代碼執行後立即特寫鏡頭。因爲如果我使用XTerminal進行編譯,我可以看到一個小窗口彈出窗口,然後關閉。

我設法使窗口打開的底部添加無窮遠環:

while true do() done;; 

但還是不明白事情如何工作。請幫忙。謝謝。

回答

3

當腳本終止時,所有資源都將被釋放:內存,文件描述符,包括X窗口。

如果添加無限循環,腳本不會終止,並且窗口保持打開狀態。

同樣,在頂層下,只要不關閉頂層,窗口就會保持打開狀態。

我會建議添加兩行添加腳本的末尾:

  • 打印「按Enter鍵退出」
  • 讀取鍵盤輸入

這樣的腳本一行將不會終止,直到用戶按下輸入。

+0

解釋!謝謝。 – xysun 2012-07-08 13:00:34

1

事實上,正如jrouquie解釋說你需要延遲程序的終止。我個人這樣做的方式是通過等待用戶輸入。在互動節目結束(或正在研究的功能打開的圖形模式下),我把:

ignore (Graphics.read_key()) 

這將等到某個鍵按下鍵盤上,並在返回之前忽略的關鍵值。

+0

謝謝。該read_key行真的很有幫助。 – xysun 2012-07-08 12:59:40

相關問題