我使用VS2010 我有幾個頭一個項目,一個文件與main()函數。 爲了測試的目的,我希望能夠輕鬆實現另一個main()函數,該函數會實現與原始主體不同的東西。 有沒有簡單的方法來定義2「主」功能,並輕鬆地在它們之間切換? 最好的做法是編譯2個二進制文件,一個在main1()開始,另一個在main2(),或者它可以是需要重新編譯某些文件的解決方案,無所謂輕鬆切換不同的main()
回答
在連接選項你有入口點的名字。這樣,您就可以擁有MAIN1()和MAIN2():
http://msdn.microsoft.com/en-us/library/f9t8842e(v=vs.80).aspx
不,這會跳過整個CRT初始化,並且圍繞着一個可怕的想法。 –
這不是一個好主意。這可能導致具有相同名稱和不同功能的多個二進制文件。 –
@CatPlusPlus AFAIK,這並沒有設置真正的入口點,而是由真正的main調用的入口點,所以CRT init不會被跳過 - 就像靜態變量構造函數不是。 –
「只有一個「你需要做的是創建一組主要調用條件或條件編譯語句的子函數。
一個應用程序只能有一個main
。如果要運行兩件事情,你需要在主這樣做,通過:
- 可執行文件運行的名稱(提示:第一argv的是可執行文件的名稱)
- 進一步的命令行參數(
program -thingone
) - 懶洋洋地對那些做某事的函數進行註釋。
#ifdef TESTING
int main() {
/* whatever */
}
#else
int main() {
/* whatever else */
}
#endif
除了在連接指定不同的入口點或者有一個真正的main()調用要假裝取較低的水平功能是一個頂級函數,你可以爲每個你想要的main()添加一個項目。
這在VS中可能有些惱人,因爲單獨的項目並未默認設置爲共享源代碼。其他一些IDE可以更容易地使用共享集的不同子集構建不同的可執行文件(或其他構建產品)的源代碼,但我從未發現使用VS的默認設置很容易。
你幾乎總是使用一個單獨的編譯二進制文件和單獨的主文件。
首先,「用於測試目的」可能包括代碼,不應該成爲真正的二進制 - 如測試庫代碼。這需要第二個二進制文件。
其次,如果有什麼東西是應該被忽略,你還有任何人都可以提供一個參數或複製和重命名二進制相匹配的argv [0],這將使該功能的問題。
我知道這可能很難建築師項目文件創建單獨的真實測試程序,但在大多數情況下,你將有一個更好的結果。
- 1. 在Java庫的兩個不同實現之間輕鬆切換?
- 2. 如何輕鬆切換Webrat和Selenium?
- 3. 在C++中輕鬆轉換不同的幾何類?
- 4. 幫助上下文輕鬆切換任務的習慣
- 5. 如何使用Repository模式讓ORM輕鬆切換?
- 6. Android輕鬆切換應用顏色方案
- 7. 如何在CUDA中輕鬆切換單精度和雙精度?
- 8. VS 2010輕鬆切換單/雙顯示器
- 9. 在發佈時輕鬆切換ConnectionStrings到Azure
- 10. 如何輕鬆地切換碎片容器?
- 11. 輕鬆地將Android庫切換到應用程序(&返回)
- 12. 使用輕靈還是不輕鬆?
- 13. 如何輕鬆交換導入的類?
- 14. jquery ui「切換類」不寬鬆
- 15. PHP快速輕鬆地替換字符?
- 16. 輕鬆地將NSComboBox轉換爲NSTextField
- 17. 在Android中輕鬆轉換xml
- 18. 在NSMutableArray中輕鬆交換對象
- 19. 輕鬆在Java中
- 20. 輕鬆編輯formatlistpat?
- 21. 輕鬆驗證CheckBoxList
- 22. 輕鬆部署EJB
- 23. 輕鬆縮放UIScrollView
- 24. 如何輕鬆切換到PyCharm Django項目中的另一個SVN分支
- 25. 如何在啓用調試的Android 6.0設備上更輕鬆地切換MTP?
- 26. 如何在Eclipse中輕鬆運行不同的配置?
- 27. 輕鬆禁用app4的log4j?
- 28. 輕鬆撥動到的IntelliJ
- 29. 在feed_dict和隊列之間輕鬆切換以輸入到TensorFlow模型
- 30. 在Mac應用程序中輕鬆切換「視圖控制器」(類似於iOS)
真的很重要什麼叫不同的功能?在同一個Visual C++ 2010項目中不能有多個'main'函數,但可以有條件地從'main'內部調用任何你喜歡的函數。 –
這是一個愚蠢的想法。 –