我想把两个程序合并成一个可执行文件。一个是开源程序,它有一个相当复杂的项目文件,另一个是我的,结构简单得多。由于项目文件的相对复杂性,我认为从开源项目开始并修改它以包含我的源文件将是最有意义的。
我的意图是,我的程序应该在控制中,并将另一个作为一个实用函数的集合。
我注意到,开放源码程序有一个名为"main()“的函数,而我的程序有一个"WinMain()”。想必我必须告诉编译器首先调用我的WinMain()。我该怎么做?
在合并过程中还有什么是我应该知道的吗?
编辑:两个程序都是C++,而不是C。
编辑:开源程序做的事情很少。
编辑:我想知道的关键是,我是否必须修改项目设置中的某些内容,以说明“这是一个使用WinMain()的windows程序,而不是使用main()的控制台(?)程序”,还是编译器会以某种方式为自己解决这个问题。
更新:联合程序现在启动并运行。
发布于 2010-10-07 14:01:01
如果你的程序有WinMain(),那么它大概是一个Windows程序,而另一个是命令行应用程序。根据原始应用程序的实际操作,这可能会使它们很难合并。例如,如果另一个应用程序广泛使用标准输入/输出,那么将其转换为Windows应用程序是很困难的。但是,如果它只是一堆没有副作用的实用方法,您可以简单地将代码添加到项目中并开始使用它。
您必须设置您的项目来生成一个Windows可执行文件,然后对您的WinMain()函数的调用将由链接器自动安排。
发布于 2010-10-07 14:20:04
如果命令行程序的main函数需要初始化,则需要重命名它并从WinMain调用它。如果没有,你可以完全移除它。无论是哪种情况,#if...#else...#endif都是好的。
重要的是,链接器再也找不到一个叫做main的函数了。
您可能会在移植过程中遇到与main和WinMain没有直接关系的main。
发布于 2010-10-07 14:01:33
main表示您有一个C或C++程序,WinMain表示您有一个Windows程序,这两个程序很难连接。
我建议您从visual studio中的windows程序开始,并添加所需的方法/类/函数以及其他源文件中的方法/类/函数。
https://stackoverflow.com/questions/3882366
复制相似问题