0

C++コンソールアプリケーションから.exeを実行する方法。私は次の方法を試しましたが、どれもうまくいきませんでした。

しばらく前に作成した「Radio.exe」というアプリケーションを実行したい。このアプリケーションは起動時にxmlファイルを読み取ります。このアプリケーションを手動で実行すると正常に動作しますが、コンソールアプリケーション「Radio.exe」を介して実行するとxmlファイルが見つかりませんか?

void execute( char* path)
{
    // cant find xml ?
    ShellExecuteA( NULL, NULL, path, NULL, NULL, SW_SHOW );

    // cant find xml ?
    ShellExecute(NULL, NULL, path, NULL, NULL, SW_SHOWNORMAL);

    // and also cant find xml ?
    SHELLEXECUTEINFO rSEI ={0};
    rSEI.cbSize=sizeof( rSEI );
    rSEI.lpVerb= NULL;
    rSEI.lpFile= "C:\\Users\\me\\Documents\\Radio.exe"; //  = path
    rSEI.lpParameters= 0;
    rSEI.nShow = SW_NORMAL;
    rSEI.fMask = SEE_MASK_NOCLOSEPROCESS;
    ShellExecuteEx( &rSEI );
}
4

1 に答える 1

5

作業ディレクトリlpDirectoryを設定する必要があります。

http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx

絶対パスを指定する必要がないように、これもパス相対パスに設定する必要があります。

例:

  • C:\ projects \ Radio
  • C:\ projects \ Radio \ radio.exe
  • C:\ projects \ Radio \ radio.xml

radio.exeを生成するプログラムがprojectsディレクトリにあると仮定します。相対パスとしてRadioディレクトリを指定できます。

于 2012-08-06T14:50:04.203 に答える