怎样让C++控制台程序重启我想要的是通过函数里面的语句实现重启,而不是人为打开,有哪位大神有好的方法吗?
怎样让C++控制台程序重启
我想要的是通过函数里面的语句实现重启,而不是人为打开,有哪位大神有好的方法吗?是控制台程序。
[解决办法]
CreateProcess
system
ShellExecute
等函数
[解决办法]
先获取本进程exe的地址
argv[0]参数或者GetMoudleName/*HANDLE=NULL*/;
然后ShellExecuteEx打开
ExitProcess退出
[解决办法]
/*开启新的程序*/
QString applicationFilePath = QCoreApplication::applicationFilePath();
wchar_t *pPath = new wchar_t[applicationFilePath.length()+1];
memset(pPath, 0, (applicationFilePath.length()+1)*2);
applicationFilePath.toWCharArray(pPath);
::ShellExecute(NULL, L"open", pPath, NULL, NULL, SW_SHOW);
delete []pPath;
[解决办法]
- C/C++ code
Processes the specified function at exit. int atexit( void (__cdecl *func )( void ));
[解决办法]
linux中可以用信号来实现 signal
[解决办法]
比如myprog.exe是你的可执行程序名,生成一个a.bat文件,然后system("a.bat");
a.bat文件内容为
taskkill /IM myprog.exe
start myprog.exe
