当我在 Visual Studio 中启动一个新项目时,我有几个选项可供选择:Windows 应用程序、控制台应用程序、dll、静态库。它们之间到底有什么区别,在什么情况下应该选择哪个呢?(抱歉如果这是个愚蠢的问题,我是 C++ 新手。)感谢您提前的回答!
当我在 Visual Studio 中启动一个新项目时,我有几个选项可供选择:Windows 应用程序、控制台应用程序、dll、静态库。它们之间到底有什么区别,在什么情况下应该选择哪个呢?(抱歉如果这是个愚蠢的问题,我是 C++ 新手。)感谢您提前的回答!
控制台应用程序。
创建一个带有控制台子系统的可执行程序([.exe]文件)。这意味着每个运行的程序实例将配备一个关联的控制台窗口,可以是现有的或新的。
Windows应用程序。
创建一个带有控制台或GUI子系统的可执行程序。GUI子系统是默认设置。与控制台子系统的不同之处在于(仅仅是)程序运行时不会自动创建控制台窗口。
静态库。
这是一种库,在其中被某些应用程序使用的代码被复制到该应用程序的可执行文件中。
DLL。
动态链接库。这是一种库,其代码没有被复制到每个使用可执行文件中。相反,该代码会被动态地放置到每个正在运行的实例的内存中。由于这个特性,单个DLL文件可以在多个程序之间共享。另一个特点是,DLL中的代码可以真正私有并使用它自己的运行时库。
在项目创建后可以非常容易地在项目属性中更改控制台和GUI子系统。
静态库与DLL在创建后不能轻松切换。
请注意,在GUI子系统中,Microsoft的链接器(与例如GCC工具链链接器不同)默认情况下不接受标准的main
函数。要强制它接受标准函数,请在链接器设置中指定入口点mainCRTStartup
。当你使用标准项目模板时,这必须在项目创建后进行。
此外,如果您想要标准行为,那么最好在项目创建向导中关闭预编译头。也可以在项目创建后关闭。但最简单和最不麻烦的方法是在创建时就关闭。
控制台应用程序是在控制台窗口(CMD)中运行的东西,仅用于快速简单的应用程序。 Windows应用程序将是一个基于GUI的应用程序,使用“windows.h”头文件。它还附带了一个窗口模板。 dll静态库用于创建DLL。阅读Microsoft Support中的DLL是什么