首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接两个程序,一个用main(),一个用WinMain()

连接两个程序,一个用main(),一个用WinMain()
EN

Stack Overflow用户
提问于 2010-10-07 13:57:26
回答 3查看 1.9K关注 0票数 2

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

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

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

在合并过程中还有什么是我应该知道的吗?

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

编辑:开源程序做的事情很少。

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

更新:联合程序现在启动并运行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-07 14:01:01

如果你的程序有WinMain(),那么它大概是一个Windows程序,而另一个是命令行应用程序。根据原始应用程序的实际操作,这可能会使它们很难合并。例如,如果另一个应用程序广泛使用标准输入/输出,那么将其转换为Windows应用程序是很困难的。但是,如果它只是一堆没有副作用的实用方法,您可以简单地将代码添加到项目中并开始使用它。

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

票数 2
EN

Stack Overflow用户

发布于 2010-10-07 14:20:04

如果命令行程序的main函数需要初始化,则需要重命名它并从WinMain调用它。如果没有,你可以完全移除它。无论是哪种情况,#if...#else...#endif都是好的。

重要的是,链接器再也找不到一个叫做main的函数了。

您可能会在移植过程中遇到与mainWinMain没有直接关系的main

票数 1
EN

Stack Overflow用户

发布于 2010-10-07 14:01:33

main表示您有一个C或C++程序,WinMain表示您有一个Windows程序,这两个程序很难连接。

我建议您从visual studio中的windows程序开始,并添加所需的方法/类/函数以及其他源文件中的方法/类/函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3882366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档