进程间调用常用函数

本文介绍了Windows API中用于执行外部程序的几种方法,包括异步的WinExec、同步的system函数以及更复杂的ShellExecuteEx和CreateProcess。每个函数的特点和使用注意事项被详细阐述,如参数格式、返回值和错误处理。对于需要获取程序输出的情况,推荐使用CreateProcess配合管道。建议在选择函数时,优先考虑CreateProcess,然后是ShellExecuteEx、WinExec和system。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值