【问题标题】:Run dependency project automatically before running Visual C++ project在运行 Visual C++ 项目之前自动运行依赖项项目
【发布时间】:2014-06-20 17:52:24
【问题描述】:

我有 2 个Visual Studio C projects: 首先是主程序, 第二个项目为第一个项目创建一个输入。

如何在主程序运行前自动执行第二个程序?

(即第二个项目将在第一个项目读取输入之前创建输入,我不必自己手动运行第二个程序)。

【问题讨论】:

标签: c visual-studio running-other-programs


【解决方案1】:

您只能让一个进程自动启动。因此,您可以通过从第一个的源代码启动第二个来调试两者。在 Windows 上,您必须使用 Win32 API,包括 Windows.h 并调用 CreateProcess() 函数。第二个进程应自动附加到调试器。在调用 CreateProcess() 之后,第一个进程可以安全终止。如果您不希望在发布版本中使用它,可以在预处理器条件下使用它。

#ifdef _DEBUG
     CreateProcess(...
#endif

【讨论】:

  • 不,实际上您可以让 Visual Studio 在开始调试会话时启动多个项目。查看链接问题的答案。
  • 感谢您的回复。我不想与 WIN API 一起使用,因为我需要保持跨平台原则。另外,与进程一起使用并不安全,因为第一个进程读取了第二个程序创建的输入,所以如果第二个进程无法完成创建它,第一个项目将读取不正确的数据,
  • 这些并不是反对 Plantaquatix 答案的真正论据。首先,如果你正在编写一个跨平台的应用程序,你只需使用任何库方法来包装启动进程的平台原生方式。例如,在 Qt 中,您将使用 QProcess 类。但最终,在 Windows 上,它将调用 CreateProcess。其次,Visual Studio 本质上也将调用CreateProcess,因此无法保证数据可用于第一个项目。您仍然需要处理同步问题。在命令行上传递参数可能更容易。
猜你喜欢
  • 2021-09-24
  • 2016-03-08
  • 1970-01-01
  • 2017-05-20
  • 2022-09-28
  • 1970-01-01
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多