我想将两个程序合并为一个可执行文件。一个是开源程序,它有一个相当复杂的项目文件,另一个是我的一个结构简单得多。由于项目文件的相对复杂性,我觉得从开源项目开始并修改它以包含我的源文件是最有意义的。
我的意图是我的程序应该控制并将另一个视为实用函数的集合。
我注意到开源程序有一个名为“main()”的函数,而我的函数有一个“WinMain()”。据推测,我必须先告诉编译器调用我的WinMain()。我该怎么做?
在合并过程中还有其他我应该注意的事项吗?
编辑: 两个程序都是C ++,而不是C.
编辑:开源程序做的很少。
编辑:我想知道的关键是我必须修改项目设置中的某些内容,说“这是一个使用WinMain()的Windows程序而不是控制台(?)程序使用main()“或者编译器会以某种方式解决这个问题。
更新:联合计划现已开始运行。
答案 0 :(得分:2)
如果你的程序有WinMain()
,那么它可能是一个Windows程序,而另一个是命令行应用程序。根据原始应用实际执行的操作,这可能会使它们难以合并。例如。如果其他应用程序广泛使用标准输入/输出,则将其转换为Windows应用程序具有挑战性。但是,如果它只是一堆没有副作用的实用方法,您可以简单地将代码添加到项目中并开始使用它。
您必须设置项目以生成Windows可执行文件,然后链接器将自动安排对WinMain()
函数的调用。
答案 1 :(得分:1)
如果命令行程序的main
函数需要初始化,您需要重命名它并从WinMain
调用它。如果没有,您可以完全删除它。 <{1}} ... #if
... #else
在任何一种情况下都会很好。
重要的是,链接器不再有一个名为#endif
的函数。
main
vs main
无直接关系的
答案 2 :(得分:0)
main
表示你有一个C或C ++程序,WinMain
表示你有一个Windows程序,并且这两个程序不能轻易加入。
我建议您从Visual Studio中的Windows程序开始,并添加您需要的方法/类/函数以及其他源文件中的方法/类/函数。