【问题标题】:running a custom files in C在 C 中运行自定义文件
【发布时间】: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


【解决方案1】:

尝试运行 system("open C:\\Users\\user\\test.exe"); 适用于linux和mac,应该可以在windows中运行

【讨论】:

  • 对于 windows 尝试更改用户和 test.exe 之间的斜线以获取 &gt;
  • 感谢聆听我的问题。我尝试过这种方式,更改斜线并打开,但它仍然无法正常工作。我使用 Visual Studio 2019。
猜你喜欢
  • 1970-01-01
  • 2011-04-12
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
  • 2019-01-02
相关资源
最近更新 更多