C++ ShellExecute失败:找不到错误文件

C++ ShellExecute失败:找不到错误文件,c++,qt,winapi,shellexecute,admin-rights,C++,Qt,Winapi,Shellexecute,Admin Rights,我正在尝试用我自己的具有管理员权限的启动器启动我的应用程序。启动器在我的64位Win7计算机上工作,但在我的32位WinXP计算机上不工作。 我使用的代码如下: wstring fullAppPath = "myapp.exe"; ShellExecuteW(NULL, L"runas", //admin rights fullAppPath.c_str(), NULL,

我正在尝试用我自己的具有管理员权限的启动器启动我的应用程序。启动器在我的64位Win7计算机上工作,但在我的32位WinXP计算机上不工作。 我使用的代码如下:

wstring fullAppPath = "myapp.exe";
ShellExecuteW(NULL,
             L"runas",                       //admin rights
             fullAppPath.c_str(),
             NULL,                           //startup params
             NULL,                           //default dir
             SW_SHOWNORMAL
             );
我将MSVC 2010 32位编译器用于Qt IDE,启动程序应用程序和主应用程序位于同一目录中,而不是C:\Windows\System32。 在我的WinXP计算机上,每当我启动我的启动器时,我都会收到一个错误\u文件\u未找到错误。(价值2)
如何解决此问题?

解决方案使用的是绝对路径而不是相对路径。

您是否尝试过转义反斜杠,即
“C:\\myapp.exe”
?我当然尝试过。确切地说,我使用了相对路径。这听起来可能很明显,但myapp.exe是64位应用程序吗?此外,如果您用notepad.exe等替换myapp.exe,它是否有效?使用相对路径从来都不是一个错误。需要使用SetCurrentDirectory(),以便您知道Windows从何处开始查找。非常感谢各位。我找了大约一个星期的错误。我想知道这个解决方案怎么会这么简单。:)但是为什么它在Win7上工作而不是在WinXP上工作呢?