将一个exe嵌入到另一个exe中,以便生成单个exe
Embed one exe into another in order to build a single exe?
我有一个Winforms项目和一个控制台项目
我是作为一个外部进程从Winforms应用程序启动控制台应用程序的,但如果可能的话,我想将两者编译成一个exe。
我已将它们合并到一个单独的VS 2015解决方案中。我应该通过将控制台应用程序转换为库来实现这一点吗?
除了所有的引用、依赖项和链接器设置/路径之外,我将如何将命令行参数传递给,并从Winforms代码启动控制台应用程序。即跳转到控制台应用程序的入口点?到目前为止,解决方案构建良好。
是的,库是正确的方法。如果你想要一个exe,你会想把它链接成一个静态库。
将项目转换为库后,将"main"函数更改为使用不同的名称,例如,我将使用"foobar"。
如果您的Winforms项目也是C++,那么接下来创建一个h文件,该文件具有"foobar"函数的定义,例如:
int foobar(int argc, char *argv[]);
这将是您图书馆的外部接口。只需将其包括在内,就可以称之为:
const char *argv[] = {"progname", "arg1", "arg2"};
int result = foobar(3, argv);
当然,您也可以更改此函数以获取更方便的参数。请记住,默认情况下,argv[0]是程序名称,可能会被忽略。
如果您正在使用C#,或者不能直接包含.h,我不确定这是否可能。请参阅此处:
如何使用C++静态库编译C#应用程序?
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 终端不会为C++文件创建.exe文件吗
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 在Windows中以.exe的形式运行c++
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- Visual Studio mkl_link_tool.exe链接错误
- PrintWindow函数在notepad.exe中出错
- VSCode C++ 编译的exe感染了Win32:TrojanX-gen[Trj]
- Eclipse CDT:单个项目中有多个C++文件
- 为什么我们将单个或多维数组的大小声明为常量值?
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- C++调用具有 *this 属性的单个帮助程序函数
- 获取当前正在运行的 exe 名称(不是路径)
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 将多个 for 循环组合成单个迭代器
- 将一个exe嵌入到另一个exe中,以便生成单个exe
- 单个类实例在GUI exe和dll中是不同的
- Qt构建到一个没有dll的单个exe文件