0

c ++VisualStudioのコードからプログラムを起動しようとしています。私はそれらのコマンドを試しました:

system( "\" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");
system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");
system( "\" C:\\Program "" Files""(x86)\\scilab-5.3.3\\bin\\WScilex.exe"");     

それらのどれもうまくいきませんでした、誰かがこれをどのように行うかを事前に感謝しています

4

3 に答える 3

2

コマンドプロンプト(cmd)の場合のように、引用符を2回使用しないでください。C ++コードでは、ファイルパスに「スペース」がある場合は引用符で囲む必要はありません。

「system」の代わりに「WinExec」を使用する必要があります。これにより、コンソールウィンドウが表示されなくなります。

例えば

WinExec("C:\\Program Files\\VideoLAN\\VLC\\vlc.exe",0);
于 2012-11-29T11:07:24.113 に答える
2

正規のShellExecuteWinAPI関数を使用します。最も単純なケース:

ShellExecute(hwnd, "open", "c:\\MyProgramPath\\WScilex.exe", NULL, NULL, 0);

詳細については、 http://msdn.microsoft.com/en-us/library/windows/desktop/bb776886( v = vs.85 ).aspxを参照してください。

于 2012-11-29T10:59:16.203 に答える
0

このsystem関数は、文字列をコマンドとして、Windows のシステムの既定のコマンド インタープリター [cmd.exe] に渡します。

したがって、コマンドの先頭に余分なスペースを入れないでください。

system( "\"C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"" );

[cmd.exe] コマンド インタープリターは、パスのスラッシュに満足しています。


最初の試み:

system( "\" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");

↑冒頭に余白あり。コマンド文字列は引用符で囲まれているため、スペースは重要です。ただし、パスにスペースが含まれているため、引用符が必要です。

2 回目の試行:

system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");

↑ コンパイルしないでください。これは実際のコードではありません。少なくとも、正常にコンパイルして実行したコードではありません。

3 回目の試行:

system( "\" C:\\Program "" Files""(x86)\\scilab-5.3.3\\bin\\WScilex.exe"");

↑冒頭に余白あり。コマンド文字列は引用符で囲まれているため、スペースは重要です。ただし、パスにスペースが含まれているため、引用符が必要です。

于 2012-11-29T11:04:57.350 に答える