2016-07-11 13 views
1

私は(とにかく、プログラミングのための)は、Windowsと少し前の経験を持っていますが、Windowsは巨大な市場シェアを持っていることを認識し、私は「彼らはちょうど楽しみのために、私は彼らをふりをしたいとしているにもかかわらず、(私のプログラムでそれをサポートしようとしています大プロジェクト)。私は最小限の(と私が最小限と言うとき、私は最小限の)機能を持つ小さなシェルを書いている。cmd.exeなしでWin32コンソールでプログラムを開くにはどうすればよいですか?

私はWindowsにポートにそれをしようとしていますし、Win32コンソールウィンドウにcmd.exeとは独立して、それを使用したいと思います(CMD.EXEのシェル部がまったく実行されていないという意味が、それのために使用されるウィンドウ

ショー)。私はすでにシステムの構築(CMake)や#defineのWindowsシステムへの適切なUnixのシステムコールの変更など、他のほとんどの移植作業を行ってきました。私はちょっとした研究をして、この話題をほとんど見つけませんでした。私はそれが可能であることを知っているので、私はそれがバッシュで行われたのを見た。 Visual Studioはまた、GUIでプログラムを実行したときにそれを行うのにも使用されていました。 https://en.wikipedia.org/wiki/Win32_console

注:

参考記事は、私がこの情報のいくつかを持って、私が何を意味するか、あなたがそれをクリックしたときであり、それはそれ自身の小さなコンソールウィンドウにcmdとを実行せず、それを開きます。または、cmdに入力するとcmdを実行していない別のウィンドウで開きます。私はcmd.exeとそれが実行されるコンソールウィンドウは2つの別々のものだと仮定していますが、私が間違っている場合は、私に知らせてください。 :)

この質問はhttps://askubuntu.com/questions/111144/are-terminal-and-shell-the-sameに触発され、私はそのWikipediaのリンクを得た同様の質問。誰かが、コンソールウィンドウとシェルが別々であると言った。私は自分のシェルを書いていたので、私が鉱山をデフォルトのものから独立させる方法を考え始めました。

+2

あなたはそれを開始します。プログラムは、それらがグラフィカル(つまり、コンソールではない)かコンソールかを示すヘッダーのビットを持っています。プログラムを作るには - NETでスイッチは '/ t:winexe'と'/t:exe'(コンソール)です。 CMD.exeとコンソールは異なるものです。 CMDはIpconfigのようなコンソールプログラムです。プログラムはコンソールも共有します - CMDがコンソールプログラムを起動し、そのプログラムが別のコンソールプログラムを起動すると、3つすべてがコンソールにあります。 –

+1

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682010(v=vs.85).aspxは、開始するには良い場所です。 –

答えて

0

Win32コンソールとcmd.exeのは、二つの異なるものです。 Windowsが必要なプログラムが起動すると、Windowsは自動的にコンソールウィンドウを開きます。実行可能ファイルにスイッチでハードワイヤード接続されているかどうかを決定します。このウィンドウは、前記プログラムを実行する。プロセスを開始したプログラムがコンソールウィンドウで実行されている場合、2つのプログラムはそのコンソールウィンドウを共有します。

麺が言ったように、それは本当に簡単です。あなたはそれを始めるだけです。それをダブルクリックすると実行されます。 CREATE_NEW_CONSOLEを渡してCreateProcess()関数に渡します。 cmd.exeからプログラムを実行すると、

start <command> 

となります。

FreeConsole()とAllocConsole()と呼ばれるWindows APIには、現在のコンソールからプログラムを解放して新しいコンソールを作成する関数ファミリもあります。

(麺によって与えられた)参考リンク:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682010(v=vs.85).aspx

関連する問題