我正在使用MFC应用程序,我有一个由MFC应用程序运行的文件

LPWSTR appParams = A2W(final.c_str());
                    PROCESS_INFORMATION ProcessInfo; //This is what we get as an [out] parameter
                    STARTUPINFO StartupInfo; //This is an [in] parameter
                    ZeroMemory(&StartupInfo, sizeof(StartupInfo));
                    StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field
                    if(CreateProcess(L"E:\\Setup\\vncviewer.exe",appParams,NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo))
                    {
                        WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
                        CloseHandle(ProcessInfo.hThread);
                        CloseHandle(ProcessInfo.hProcess);

                    }


上面是在位置e:\ setup \上运行vncviewer.exe文件的代码,但是我不希望该文件使用静态位置,我如何在应用程序文件夹中添加文件,并且在安装文件上也添加了相同的代码。

最佳答案

尝试使用以下代码运行exe:

TCHAR szExeName[_MAX_PATH], drive[_MAX_DRIVE], dir[_MAX_DIR], fname[_MAX_FNAME], ext[_MAX_EXT];
GetModuleFileName(hInst, szExeName, _countof(szExeName));
_tsplitpath_s(szExeName, drive, dir, fname, ext);
_tmakepath(szExeName, drive, dir, L"vncviewer", L".exe");
if (CreateProcess(szExeName, ...

10-06 10:22