【发布时间】:2020-11-08 12:57:33
【问题描述】:
我想运行一个自定义文件 test.exe。我尝试了 ShellExecute() 和 system(),但没有成功。我该如何解决这个问题?
代码:
#include <stdio.h>
#include <windows.h>
int main()
{
system("C:\\Users\\user\\test.exe");
}
代码和下一个代码system("PAUSE")被跳过,运行过程中不返回也不出错。
我通过答案使用了 errno 代码,也没有处理错误。
它可能在该目录中有 test.exe ,当我研究时,该格式是正确的并且在其他格式中运行良好。
它不返回任何东西,甚至 -1 并关闭。
我确实检查了任务管理器,看到程序 test.exe 正在运行并打印 Hello World(这是正确的),但什么也没有。
【问题讨论】:
-
这能回答你的问题吗? How to run an exe using c prog
-
当函数运行程序失败时,您检查过为什么吗?例如,当
ShellExecuteA失败时,您是否检查过它实际返回的错误?对于system,你检查过errno吗? -
我用你的 cmets 修复了它们,第一个我尝试了很多次,但它只是系统和 shellexecute 代码没有运行并且没有返回代码。
-
两个函数都返回一个值。你检查过这个值吗?就像例如
if (system(...) == -1) { printf("Error running program: %s\n", strerror(errno)); } -
或者你的意思是这两个函数实际上都没有返回?然后程序正在运行。它只是在没有您可以看到的窗口的情况下运行,或者该窗口最终位于其他窗口之后。这个
test.exe程序应该做什么?
标签: c visual-studio system shellexecute