想从项目B
内的main
方法项目A
以内调用main
方法。当我在B
的main.cpp
在C++中调用其他项目的主要方法的主要方法
#include "pathToProjectA/main.cpp"
写我得到
error C2084: function 'int main(int,char *[])' already has a body
是否有可能做出这样的电话吗?
想从项目B
内的main
方法项目A
以内调用main
方法。当我在B
的main.cpp
在C++中调用其他项目的主要方法的主要方法
#include "pathToProjectA/main.cpp"
写我得到
error C2084: function 'int main(int,char *[])' already has a body
是否有可能做出这样的电话吗?
不,你不能。有一个且只有一个main()
是一个硬设计约束。
您需要将您的功能抽象为函数,可能将其转换为函数库,然后A和B都可以使用新函数库。
这根本不可能。你只能有一个main()。
上面的答案并不完全正确。
如果您可以重命名当前项目的main
您可以这样做。只需重命名它并告诉编译器使用重命名的main作为入口点。见this answer。
在一个程序中不能有两个main()
函数实例。这会给链接器带来很大问题:应该选择哪一个作为主函数real(在启动程序时调用)?
如果您想制作两个二进制文件(A.exe
和B.exe
)并从另一个文件中调用其中的一个,应该阅读有关执行外部进程的内容。通过使用操作系统的API或一些平台无关的库(如Qt),但绝对不能直接调用其他进程的函数。
为什么这个设计约束存在?在我看来,编译器可以根据我是否调用'A.exe'或'B.exe'来知道调用哪一个main。 – Dejan