C++プログラムから実行可能ファイルを実行しようとしています。私は見て2つのオプションが見つかりました:
システム( "C:\ filepath \ file.exe");
および
ShellExecute(GetDesktopWindow()、 "open"、 "C:\ filepath \ file.exe"、NULL、NULL、SW_SHOWNORMAL);
動作しない点を除き、すべて美しいです。
最初のオプションはwindows.hとは別にcstdlibも含めなければなりません。さもなければ私のコードはビルドされませんでした。
"file.exe"が内部または外部コマンドとして認識されない
私のプロジェクトに共通言語ランタイムサポート(/ clr)オプションを設定しました。また、ランタイムライブラリのオプションMulti-threaded Debug DLL(/ MDd)を設定しなければなりませんでした。そうしないと、ビルドできませんでした。
2つ目のオプションは、両方のライブラリが含まれていてもビルドされません。私はエラーを取得する:
エラーC3861:「ShellExecuteを」:識別子が
を発見していない私は、のWindows7にVS2010を使用しています - これはマルチプラットフォームで動作するようにしたいと思い...
C++外部プロセスの実行
は、私はあまりにも多くを求めていますか?
ありがとうございます。
これをマルチプラットフォームにしたい場合は、Windows固有の 'ShellExecute'を使うことはできません。あなたの 'system'コマンドは正しいです。あなたはそれに不正なパスを与えたように聞こえます。 – Borealid
文字列引数のバックスラッシュを 'system()': 'system(" C:\\ filepath \\ file.exe ");'にエスケープしてみてください。最初のコードスニペットが期待どおりに機能する可能性があります。 –
私は\\をエスケープしていましたが、私のパスは正しいです – Thalia