Visual Studio C++ 在可执行文件中创建可执行文件

Posted

技术标签:

【中文标题】Visual Studio C++ 在可执行文件中创建可执行文件【英文标题】:Visual Studio C++ Creating executable in executable 【发布时间】:2017-03-30 23:00:53 【问题描述】:

我想创建只有 1 个可执行文件的 2 个可执行文件。我如何在 Visual Studio 2015 中做到这一点?我在互联网上查看,但找不到任何东西。没有向导我有什么办法可以做到这一点?只需 1 个解决方案中有 2 个项目,project1 的 exe 将创建 project2 的 exe。或者可以做我想做的事情。

目的是用户不必下载2个单独的exe,他只下载1个,然后在exe1旁边创建一个(两个程序的目的不同,所以exe1不会用于创建exe2)

【问题讨论】:

你的问题毫无意义。 “我怎么能用一辆车买两辆车?” “我怎么能用 1 个蛋糕烤 2 个蛋糕?” 您认为为什么需要生成第二个可执行文件?第一个的作用是什么,第二个的作用是什么。 第一个将只运行 1 次,第二个将是一个服务。第一个也有一个GUI。如果可能的话,我想这样做,而不是在程序第一次运行时留下一个标志,它可以再提供服务了。 【参考方案1】:

在第一个可执行文件中使用 CreateProcess 从另一个可执行文件创建第二个进程。 https://msdn.microsoft.com/en-us/library/ms682512(v=vs.85).aspx

如果您需要一个项目的两个输出: 使用构建后事件:

1- 制作输出副本。

2- 改变你想改变的任何东西。

3- 再次构建相同的项目: Build another project by prebuild event without adding reference 在您的情况下,另一个项目是同一个项目。

【讨论】:

我不知道我需要什么。我希望他们彼此独立。当 exe1 运行时,它会生成 exe2,它是与 exe1 相同的解决方案中的一个项目。而且它们的内容不同。 那么你只需要 CreateProcess 和第二个可执行文件的路径。 嗯,是不是有可能用户只打开 1 个 exe 并创建另一个? 是的,CreateProcess 将在第一个可执行文件中为您执行此操作。您需要将第二个可执行文件的路径传递给此函数。

以上是关于Visual Studio C++ 在可执行文件中创建可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 中调试由可执行文件调用的 C++ 文件

visual studio 2010 一个解决方案里有多个c++源文件 怎么只执行其中一个?

C++ 可执行文件仅从 Visual Studio 启动

如何用visual studio2012编c++程序?

在 Visual Studio (TDD) 中构建和运行 C++ 单元测试

Visual Studio 非托管 C++ 智能文件资源管理器