2012-05-03 6 views
0

私は、デバッグコンソールとしてコマンドラインインターフェイス(cmdウィンドウ)も使用するGUIを持つWindowsプログラムを持っています。基本的には、ダブルクリックするとコマンドラインウィンドウが起動し、プログラムはすべてのGUIウィンドウを作成します。次に、メインのGUIとデバッグコンソールの2つのWindowsがあります。OS XへのCLI/GUI Windowsプログラムの移植

私はOS XにこのPogramを移植しようとしています。OS X(とその問題のすべてのUnix OS)は、コマンドラインアプリケーションを実行すると自動的にコマンドラインウィンドウを起動しないためです。だから、私は明らかにこのアプリケーションを移植する別の方法が必要です。

私の最初の考えは、ソースコードをXCodeプロジェクトにインポートし、標準入力と出力をリダイレクトしてGUIを移植することでした。 Windowsと同様に、GUIとコンソールは並行して実行されます。私はこれが最も基本的な解決策ではないと私は考えています。それは、基本的にはターミナルエミュレータを書く必要があることを意味します。

私の他の考えは、WindowsのようにGUIを作成するコマンドラインアプリケーションとしてアプリケーションを移植することです。アプリケーションは、すべてのI/Oを処理できるTerminal.appから実行する必要があります。残念ながら、NSApplicationループを使用せずにCocoaフレームワークを使用できるとは思いません。

私はこれにどのようにアプローチできますか?

+0

それがCLIの場合は、CLIのように扱います。 Terminal/shやその他のものを起動してください。おそらく、再発を防ぐためのフラグ/チェック。うまくいけば、それは "普通"か、Unixy-Cである;-) –

答えて

0

もちろん、端末起動アプリから実行ループを作成することもできます。しかし、それはあなたがしたいことではありません。

Windowsのように聞こえますが、CLIは実際のデバッグコンソールウィンドウを作成するためのショートカットとして使用されています。したがって、最も簡単な答えは、デバッグコンソールウィンドウを作成することです。単なる複数行のテキストまたはリストビューを含むウィンドウを作成するのは簡単です。 (何か好きな方はiTerm2や他のオープンソースプロジェクトからコードを借りて、完全な端末を作るのではなく、あなたのリストビューにログするようにマクロを変更してください。

fprintfやsyslogのようなものを直接実行してロギングを行う場合は、メインアプリケーションを起動するラッパーアプリを作成する方が簡単ですし、ラッパーがデバッグコンソールウィンドウを作成してメインアプリのstdoutと/またはstderr。 (これはpopenを使用するのと同じくらい簡単かもしれません)

関連する問題