2012-05-03 53 views
0

我有一个Windows程序,它具有也使用命令行界面(cmd Window)作为调试控制台的GUI。基本上,当它被双击时,它会启动一个命令行窗口,然后程序创建所有的GUI窗口。然后你会有两个Windows:主GUI和调试控制台。将CLI/GUI Windows程序移植到OS X

我试图将这个程序移植到OS X中。因为OS X(和所有Unix操作系统就此而言)在运行命令行应用程序时不会自动启动命令行窗口。所以,我显然需要另一种方式来移植这个应用程序。

我最初的想法只是将源代码导入到XCode项目中,重定向标准输入和输出,然后移植GUI。 GUI和控制台将像Windows中一样并排运行。我不认为这是最优化的解决方案,因为那意味着我基本上必须编写终端仿真器。

我的另一个想法是将应用程序作为命令行应用程序移植,就像在Windows中一样创建其GUI。然后,应用程序必须从可以处理所有I/O的Terminal.app运行。不幸的是,我不认为你可以在不使用NSApplication循环的情况下使用Cocoa框架。

任何想法,我可以如何处理这个?

+0

如果是CLI,请像CLI一样对待它。只需启动Terminal/sh或whatnot。也许一个标志/检查,以防止重新启动。希望它是“普通的”或Unixy-C已经;-) – 2012-05-03 06:52:54

回答

0

你当然可以从终端启动的应用程序创建一个运行循环。但这通常不是你想要做的。

听起来像在Windows上,CLI只是用作创建真实调试控制台窗口的快捷方式。所以最简单的答案就是创建一个调试控制台窗口。创建一个只包含多行文本或列表视图的窗口非常简单。 (如果你想要更奇特的东西,可以考虑从iTerm2或其他开源项目中借用代码,而不是试图构建一个完整的终端。)如果你的调试信息是用一些奇特的宏打印的,只需要将宏更改为登录到列表视图。

如果您直接执行类似fprintf或syslog的操作来执行日志记录,则创建启动主应用程序的包装应用程序可能会更简单,并且包装程序会创建调试控制台窗口并显示主应用程序的stdout和/或stderr。 (这可能与使用popen一样简单。)

相关问题