【问题标题】:Combining two exe files [closed]结合两个exe文件[关闭]
【发布时间】:2014-07-18 11:21:29
【问题描述】:

这是我的问题的一些背景:

我有一个 Visual C++ 2006 项目和一个 Visual C++ 2010 Express 项目。两者都编译形成一个exe文件。我无法将我的 2006 年项目转换为 2010 年,因为我收到很多“无法加载项目”错误。我也无法将 2010 年的项目代码移植到 2006 年(无论我尝试什么,总是会出错,这与库有关)。

我的最终解决方案要求我只有一个可执行文件。我能做些什么来实现这一目标吗?我在谷歌上做了一些快速搜索,发现有 exe 加入者,但我也听说这些东西经常被用来制作恶意软件。

作为参考,我正在与“虚拟”客户合作,因此希望尽可能简化他们的事情。因此,让他们执行一个 exe 比让他们执行两个要好。另外,我不希望他们的防病毒软件失控,因为我使用了一些程序将两个 exe 连接在一起。做什么?

编辑:

这两个项目文件做不同的事情。比如VS2006的项目搭建了一个服务器,VS2010的项目抓取用户操作系统的信息。我认为“服务器”的代码有很多依赖项,由于某种原因无法转换为 Visual c++ 2010。“抓取”的代码需要一些更新的库和编译选项,如果我移植到 2006 将无法工作.

另外我相信我提到的 exe 合并只是充当一个“容器”,它在其中一个接一个地运行两个 exe 文件。

【问题讨论】:

  • EXE 合并无法合并具有两个截然不同的入口点的程序。它会执行哪个入口点?
  • 是否有某些原因您无法获取旧的 c++ 代码并将其移至较新的项目?
  • 修复您在尝试将 Visual Studio“2006”(不存在)项目转换为 2010 或更好,转换为 2013 时遇到的错误。
  • 嗯,它们做不同的事情,我想将它们的功能组合到一个 exe 中。这有意义吗?

标签: c++ visual-studio exe


【解决方案1】:

唯一好的解决方案是将最旧的代码 (2006) 移植到 VS2010(或将两个项目都移植到较新的编译器),然后从一个新的解决方案编译一个新的可执行文件,您可以根据需要组合两个项目。

正如评论的那样,合并两个可执行文件通常没有什么意义(入口点是什么?冲突的符号怎么样?不同的编译器和链接器生成这些二进制文件的事实怎么样?等等...)

【讨论】:

    猜你喜欢
    • 2021-05-09
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2020-09-30
    相关资源
    最近更新 更多