为什么控制台应用程序比基于 GUI 的程序(windows 形式)大 [方式]

Why console applications are [way] bigger than GUI based programs (windows forms)

很长一段时间以来,我一直是一名[视觉]基础程序员。最近我发现了一个很好的 android 应用程序,它教 C++,我下载了它,我已经学习这门语言几个星期了。

但是,我注意到我的 EXE 文件中有一些明显不同的地方。 Code::Blocks 生成的 C++ 程序每个大小约为 1 MB,但我使用 Visual Basic 6.0 和 2010 生成的大多数程序几乎没有超过 100 KB。

需要注意的一点是,我所有的几个 C++ 程序都是控制台应用程序,而我所有的 BASIC 程序都是基于 GUI 的应用程序。所以我的问题是:这个大小差距是由于应用程序类型造成的,还是与 C++ 和 BASIC 程序的编译方式有关?

最有可能的答案是您的控制台程序可能静态链接到它的依赖库,这意味着它将机器代码从外部库复制到您应用程序的可执行文件中。而 GUI 应用程序可能链接到共享库,共享库在运行时将相关机器代码加载到内存中。您可以检查应用程序的共享库依赖项以进行验证。