1、异步 函数
WIN32 API WinExec(“one.exe”, SW_SHOWNORMAL);第二个参数只是WinExec函数的参数,不是one.exe的参数。
注意:第一个参数一定是ASCII
2、同步函数
system函数原型: int system(const char *command) 是C库函数
注意:
1)第一个参数为ASCII ,运行时会弹出黑框
2) system()只是做一个调用其他程序的工作,只要调用成功就返回0,不成功就返回-1。
3)如果调用进程的目录中含有空格,包含空格的目录必须用引号括起来
例如要执行 “c:\progress abc\123.exe” “d:\123.txt” “d:\124.txt”
command 正确的写法为
c:\“progress abc”\123.exe” “d:\123.txt” “d:\124.txt”
BOOL ShellExecuteEx
WIN32 API 函数执行成功,返回 TRUE ,否则返回 FALSE ,可使用 GetLastError 获取错误码。
https://www.cnblogs.com/lixianhu1998/p/12194101.html
CreateProcess ,配合管道,可以获取程序输出到终端内容(参考Poco 库的Process)
WIN32 API 若函数调用成功,则返回值不为0;若函数调用失败,返回值为0。
使用建议:
优先 CreateProcess > ShellExecuteEx > WinExec > system
本文介绍了Windows API中用于执行外部程序的几种方法,包括异步的WinExec、同步的system函数以及更复杂的ShellExecuteEx和CreateProcess。每个函数的特点和使用注意事项被详细阐述,如参数格式、返回值和错误处理。对于需要获取程序输出的情况,推荐使用CreateProcess配合管道。建议在选择函数时,优先考虑CreateProcess,然后是ShellExecuteEx、WinExec和system。
565

被折叠的 条评论
为什么被折叠?



