gpt4 book ai didi

c++ - 将一个 exe 嵌入另一个以构建单个 exe?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:13:48 24 4
gpt4 key购买 nike

我有一个 Winforms 项目和一个控制台项目。
我从 Winforms 应用程序启动控制台应用程序作为外部进程,但如果可能的话,我想将两者编译成一个 exe。

我已将它们整合到一个 VS 2015 解决方案中。我应该能够通过将控制台应用程序转换为库来完成此操作吗?

除了所有引用、依赖项和链接器设置/路径之外,我将如何将命令行参数传递给并从 Winforms 代码启动控制台应用程序。即跳转到控制台应用程序的入口点?到目前为止,该解决方案构建正常。

最佳答案

是的,图书馆是正确的方法。如果您想要一个 exe,则需要将其链接为静态库。

将项目转换为库后,将“main”函数更改为使用不同的名称,例如“foobar”。

如果您的 Winforms 项目也是 C++,接下来创建一个包含“foobar”函数定义的 h 文件,例如:

int foobar(int argc, char *argv[]);

这将是您图书馆的外部接口(interface)。只需包含它,然后您就可以调用它:

const char *argv[] = {"progname", "arg1", "arg2"};
int result = foobar(3, argv);

当然,您也可以更改此函数以采用更方便的参数。请记住,默认情况下,argv[0] 是程序名称,可能会被忽略。

如果您使用的是 C# 或无法直接包含 .h,我不确定这是否可行。看这里:

How to compile C# application with C++ static library?

关于c++ - 将一个 exe 嵌入另一个以构建单个 exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36668826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com