2012-02-16 11 views
9

C++では、system()shellexecute()の主な違いは何ですか?System vs ShellExecute - 違いはありますか?

system()shellexecute()はどのような状況で使用する必要がありますか?

+2

'ShellExecute'はC++とは関係ありません。 – ildjarn

+0

システムは標準で、shellexecuteはありません、前者を使用してください – 111111

+1

@ 111111なぜそれを言うのですか? Windowsで実行するコードを記述していて、ユーザーのデフォルトブラウザでURLを開きたいとします。確かに 'ShellExecute'が正しい解決策です。 –

答えて

7

標準のC++には、shellexecuteというものはありません。だから違いはありません。

ありWin32の機能ShellExecuteだが、それはWin32関数ではなく、C++ systemなどの標準機能です。

ShellExecutesystemとは異なるものです。 systemは(多かれ少なかれ)コマンドラインでコマンドを入力するのと同等です。 ShellExecuteは、ファイルをダブルクリックする(または右クリックしてリストから "動詞"を選択する)のと同等です。

彼らは本当に何も共通していません。

+0

ありがとう、私はそれを得た。 – xRed

+0

私はあなたが 'system'を呼び出すと、' ShellExecute'が完了を待たずに実行が完了するまで、コントロールはプログラムに戻りません。 –

+4

'ShellExecute'は実際には多くのことを行うことができる非常に強力な関数です。その力の鍵は、パラメータとして "動詞"を指定する能力です。これは、実行するアクションを関数に指示します。したがって、さまざまな方法で行動するよう指示されるため、特定のやり方で行動することを特徴づけることは多少不正確です。これはもちろん、その力と実用性の鍵です。 Win32コードを書くとき、 'ShellExecute'は常に' system'より優先されるべきです。 –

関連する問題