如何在vc ++中执行从安装目录中读取数据的应用程序

Pow*_*fet 0 c++ winapi

如何从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 );
}
Run Code Online (Sandbox Code Playgroud)

Jas*_*ley 5

你需要设置你的工作目录,lpDirectory:

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

您应该将其设置为路径相对,这样您就不必提供绝对路径.

例:

  • C:\ PROJECTS \电台
  • C:\ PROJECTS \电台\ radio.exe
  • C:\ PROJECTS \电台\ radio.xml

假设您生成radio.exe的程序位于项目目录中.你可以提供Radio目录作为相对路径.