2012-07-08 28 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

相关问题