0

我有一个带有 GUI 的 Windows 程序,它还使用命令行界面(cmd 窗口)作为调试控制台。基本上,当它被双击时,它会启动一个命令行窗口,然后程序会创建所有的 GUI 窗口。然后您将拥有两个 Windows:主 GUI 和调试控制台。

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

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

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

有什么想法可以解决这个问题吗?

4

1 回答 1

0

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

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

如果您直接执行 fprintf 或 syslog 之类的操作来进行日志记录,则创建启动主应用程序的包装器应用程序可能会更简单,并且包装器会创建调试控制台窗口并显示主应用程序的标准输出和/或标准错误。(这可能就像使用 popen 一样简单。)

于 2012-05-03T21:06:55.603 回答