2014-04-01 311 views
1

當我在Visual Studio中啓動一個新項目時,我有幾個選項可供選擇:Windows應用程序,控制檯應用程序,dll,靜態庫。究竟是什麼差異,我應該什麼時候使用哪些? (對不起,如果這是一個愚蠢的問題,我是C++的新手。)在此先感謝。控制檯應用程序vs dll vs Windows應用程序等

+0

選擇控制檯應用程序一段時間。爲您提供了學習語言以及如何使用MSDN Library的時間,以便您不必提問這樣的問題。 –

+0

Windows應用程序將作爲Windows窗口啓動應用程序,控制檯應用程序僅限於控制檯/終端。如果你是C++的新手,你並不需要學習DLL和靜態庫。你現在應該堅持使用控制檯應用程序。 – Matthew

回答

3
  • 控制檯應用程序。
    使用控制檯子系統創建可執行程序([.exe]文件)。這意味着每個正在運行的程序實例都將配備一個關聯的控制檯窗口。無論是現有的還是新的。

  • Windows應用程序。
    使用控制檯或GUI子系統創建可執行程序。 GUI子系統是默認的。與控制檯子系統的不同之處在於(僅)在程序運行時不會自動創建控制檯窗口。

  • 靜態庫。
    這是一種庫,其中某些應用程序使用的代碼被複制到該應用程序的可執行文件中。

  • DLL。
    動態鏈接庫。這是一種庫,其代碼不會複製到每個使用可執行文件中。代碼會動態地放入每個運行實例的內存中。由於此功能,可以在許多程序之間共享單個DLL文件。另一個功能是DLL中的代碼可以非常私密,並使用自己的運行時庫。

在創建項目後,控制檯與GUI子系統在項目屬性中可以很容易地進行更改。

靜態庫與DLL在創建後並不真正切換。

請注意,對於GUI子系統,Microsoft的鏈接器(不同於例如GCC工具鏈鏈接器)默認情況下不接受標準main。要強制它接受該標準,請在鏈接器設置中指定入口點mainCRTStartup。當您使用標準項目模板時,必須在創建項目後完成。

此外,如果您想要標準行爲,則在項目創建嚮導中關閉預編譯頭文件是一個好主意。項目創建後也可以關閉。但是在創作時最簡單也最不麻煩。

+0

謝謝,說明了很多:)! – user3482499

2
  • Windows應用程序項目使用圖形用戶界面和OS消息處理創建應用程序。
  • 控制檯應用程序完全基於文本,並在控制檯窗口中執行。這是最簡單的應用程序形式,並在許多教程中用於解釋基本語言功能。
  • 靜態庫和DLL不能自行執行。但是它們提供了可以被其他程序使用的功能。靜態庫和DLL之間的區別在於,當一個程序使用它們時,靜態庫被複制到可執行文件中,而DLL文件是一個單獨的文件。
+0

謝謝你的幫助:)! – user3482499

+0

控制檯應用程序*不是*完全基於文本的。所有的GUI或者圖形庫或者我曾經嘗試過的框架都被Visual Studio IDE稱之爲「控制檯應用程序」所使用。它只是*默認*爲純文本I/O。 –

0

控制檯應用程序是在控制檯窗口(CMD)中運行的,僅用於快速簡單的應用程序。 Windows應用程序將是一個使用「windows.h」頭文件的基於GUI的應用程序。它還帶有一個窗口模板。 一個DLL靜態庫用於創建一個DLL。閱讀What is a DLL from the Microsoft Support

相關問題