2

ShellExecute コマンドを使用してプログラムを起動し、C++ コードでファイルを開こうとしています。windows.h を含めました。私が書いているコードは次のとおりです。

ShellExecute(GetDesktopWindow(), "open", "C:\\Program Files (x86)\\EMSO\\bin\\emso.exe","C:\\Program Files (x86)\\EMSO\\bin\\MultiCSTR_Reaction.mso", NULL, SW_SHOWNORMAL);

コードは実行可能ファイルを開きますが、.mso ファイルを開くことはできません。「ファイル 'C:\Program' が見つかりません」、「ファイル 'ファイル' が見つかりません」、「ファイル '(x86)\EMSO\bin\MultiCSTR_Reaction.mso' が見つかりません」というダイアログ ボックスが生成されます。コマンドラインからファイルを開くことができます。しかし、C++ コードから開く方法。

4

1 に答える 1

1

次のように、ファイルへのパス ( の 4 番目の引数ShellExecute) を試してください。

"\"C:\\Program Files (x86)\\EMSO\\bin\\MultiCSTR_Reaction.mso\""

プログラムは、スペースで区切られた複数のコマンド ライン引数を取ることができます。そのため、スペースを含む文字列を引数として渡そうとすると、スペースと同じ数の引数に分割されます。これを避けるには、文字列を引用符で囲む必要があります。

于 2013-07-03T10:28:15.950 に答える