想從項目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