C++:visual studio项目属性->配置属性->常规->配置类型中.exe与.dll的区别

在 Visual Studio 中,"配置类型"(Configuration Type)设置决定了你编译的项目将生成什么类型的输出文件。常见的配置类型包括 .dll.exe,它们分别代表动态库和可执行文件。

  • 解释.dll 文件是动态链接库,包含可供其他程序调用的函数、类、变量等代码资源。

    • 它并不能直接运行,而是被其他可执行文件(如 .exe)或库引用和加载。
    • 使用动态库的好处是可以重用代码,减小可执行文件的大小,并且多个程序可以共享同一份库。
  • 用途

    • 共享代码:动态库可以由多个应用程序共享,避免每个应用程序重复编译和包含相同的代码。
    • 插件系统 :许多软件提供插件扩展功能,插件通常会以 .dll 文件的形式提供。
  • Visual Studio 中的配置

    • 如果将配置类型设置为 "动态库 (.dll)" ,则编译器会生成 .dll 文件,并且生成与其配套的导入库 .lib 文件。
    • .lib 文件用来让其他程序知道如何调用 .dll 中的函数。
  • 例子

    • 操作系统库 :Windows 提供了大量的系统功能,它们都是以 .dll 文件的形式存在,例如 user32.dll
    • 第三方库 :开发者可能会使用或开发自己的 .dll 库来封装常用功能供多个项目使用。

2. .exe - 可执行文件 (Executable)

  • 解释.exe 文件是可执行文件,包含可以直接运行的程序。

    • 它是应用程序的最终输出形式,包含所有代码、数据等,用于操作系统加载和运行程序。
  • 用途

    • 直接执行 :用户可以双击运行 .exe 文件,操作系统会加载它并启动程序。
    • .exe 文件通常会依赖某些库(如 .dll 文件)来实现部分功能,但自身是完整的可执行程序。
  • Visual Studio 中的配置

    • 如果将配置类型设置为 "应用程序 (.exe)" ,编译器会生成 .exe 文件,它可以直接运行。
    • .exe 文件可以是控制台应用程序(没有图形界面)或者图形用户界面 (GUI) 应用程序。
  • 例子

    • Windows 应用程序 :比如常见的程序如 notepad.execalc.exe 都是可执行文件。
    • 控制台应用程序:比如开发者编写的测试程序,执行一些命令行操作。

主要区别

  • .dll 动态库

    • 不能直接运行,必须被其他程序调用。
    • 适用于模块化编程,插件,或者共享库。
    • 常用于提供可供多个应用程序使用的功能。
  • .exe 可执行文件

    • 可以直接运行,是完整的应用程序。
    • .exe 文件可以依赖 .dll 文件来扩展功能。

总结

  • .dll 是动态链接库,提供代码供其他程序调用,而 .exe 是独立的可执行程序,可以直接运行。
相关推荐
会周易的程序员13 小时前
aiDgePLC — IEC61131-3 ST PLC 虚拟机调试与运行环境
c++·物联网·虚拟机·st·工业协议·iec61131·梯形图
wuminyu14 小时前
JVM利用io_uring优化堆外内存性能原理剖析
java·linux·c语言·jvm·c++
gumichef14 小时前
第二章:C/C++内存管理
c++·内存管理
小龙报18 小时前
【优选算法】1.搜索插入位置 2.x的平方根
java·c语言·数据结构·c++·python·算法·蓝桥杯
A_humble_scholar18 小时前
Linux(二) C++ TCP/UDP网络编程
linux·网络·c++
SNAKEpc1213819 小时前
OpenGL(十五)- 着色器语言GLSL
c语言·c++·线性代数·算法·矩阵·图形渲染·着色器
欧特克_Glodon20 小时前
OpenCV计算机视觉开发入门与实践<六>:OpenCV架构模块简介
c++·人工智能·opencv·计算机视觉
Rabitebla20 小时前
C++11 新特性详解(一):列表初始化、initializer_list 与右值引用
java·开发语言·数据结构·c++·算法·leetcode·list
MC皮蛋侠客21 小时前
TDengine C++ 系列(11):性能模型与调优——从测量到优化
c++·php·tdengine
兔兔兔兔121 小时前
记录C++ 3
开发语言·c++