【发布时间】:2026-01-23 04:20:03
【问题描述】:
我想执行 shell 命令来更新我的处理器 ATMega 2560 的固件,如下所示:
avrdude.exe -c breakout -P ft0 -p m2560 -U flash:w:\"file.cpp.hex\":a
我可以通过 ShellExecute() 函数来完成:
ShellExecute(0, L"open", L"cmd.exe", L"/C avrdude.exe -c breakout -P ft0 -p m2560 -U flash:w:\"file.cpp.hex\":a > log.txt", 0, SW_HIDE);
但我想重定向输出缓冲区,所以我认为我应该使用 CreateProcess() 函数。我试过了,但没有成功。
CreateProcess(NULL, L"cmd /C avrdude.exe -c breakout -P ft0 -p m2560 -U flash:w:\"file.cpp.hex\":a", NULL, NULL, 0, 0, NULL, NULL, NULL, NULL);
【问题讨论】:
-
那么,您的
CreateProcess()会返回什么?假设这是一个错误,GetLastError()会说什么?
标签: c++ winapi cmd createprocess