c++ - 连接两个程序,一个使用 main(),一个使用 WinMain()

标签 c++ visual-studio-2008 windows-xp

我想将两个程序合并为一个可执行文件。一个是一个开源程序,具有相当复杂的项目文件,另一个是我的一个,结构简单得多。由于项目文件相对复杂,我认为从开源项目开始并修改它以包含我的源文件是最有意义的。

我的意图是我的程序应该受到控制,并将另一个程序视为实用函数的集合。

我注意到开源程序有一个名为“main()”的函数,而我的有一个“WinMain()”。想必我必须告诉编译器首先调用我的 WinMain() 。我该怎么做?

合并过程中还有什么需要注意的吗?

编辑: 两个程序都是 C++,而不是 C。

编辑:开源程序执行的 io 操作很少。

编辑:我想知道的关键是我是否必须修改项目设置中的某些内容来说明“这是一个使用 WinMain() 而不是控制台的 Windows 程序(?)使用 main() 的程序”或者编译器会以某种方式自行解决这个问题。

更新: union 计划现已启动并运行。

最佳答案

如果您的程序有 WinMain(),则它可能是 Windows 程序,而另一个是命令行应用程序。根据原始应用程序的实际用途,这可能会使合并它们变得困难。例如。如果另一个应用程序广泛使用标准输入/输出,则将其转换为 Windows 应用程序将具有挑战性。但是,如果它只是一堆没有副作用的实用方法,您只需将代码添加到您的项目中并开始使用它即可。

您必须设置项目以生成 Windows 可执行文件,然后链接器将自动安排对 WinMain() 函数的调用。

关于c++ - 连接两个程序,一个使用 main(),一个使用 WinMain(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3882366/

相关文章:

python - 来自 Python 的 XP 中的进程大小

c++ - 如何通知我的应用程序默认的声音播放设备已更改?

c++ - 为什么在 C++23 中分配_at_least()?

c++ - 如果 CImage::Load 方法失​​败会发生什么?

c++ - echo在Boost中输入命令行参数

visual-studio-2008 - 混合 "Window is not supported in a WPF Project"

windows-xp - Cygwin sshd 服务的 SSH 密码/用户问题

c++ - putc 和 ungetc 有什么区别?

卡西尼号上的 ASP.NET MVC : How can I force the "content" directory to return 304s instead of 200s?

c# - 指定 CLR 存储过程的 SqlString 长度