【问题标题】:Explanation on additional dependency libs when creating dll project in Visual Studio在 Visual Studio 中创建 dll 项目时附加依赖库的说明
【发布时间】:2021-05-28 06:05:11
【问题描述】:

在 Visual Studio 中创建 dll 项目时(在我的例子中是 2017 年),有很多库进入额外的依赖项

kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;

有没有什么地方描述了为什么需要这么多?

【问题讨论】:

    标签: c++ visual-studio c++11 visual-c++ dll


    【解决方案1】:

    这些是与 Windows 交互的库。

    有关它们的用途的更多详细信息,我建议您可以参考链接:https://stackoverflow.com/a/36018689/11872808

    kernel32:进程和线程管理、文件和设备 I/O、内存分配(保留这个,C 和 C++ 运行时库和编译器生成的代码使用它)

    user32:窗口和菜单管理(如果使用 GUI,请保留此功能,对于控制台应用程序可以删除)基本小部件集(= 预定义的窗口类,如按钮、复选框和滚动条)在这里。

    gdi32 : 绘图(如果使用自定义渲染图形,请保留它,如果仅使用小部件,则可以删除)

    comctl32:花哨的新小部件,如树、列表视图和进度条

    winspool : GDI 覆盖范围之外的高级打印使用。

    comdlg32 : 常用对话框,例如打开和保存文件对话框

    advapi32:注册表支持、用户帐户和访问控制、密码学。

    shell32, shlwapi:任务栏和通知托盘 UI 以及更多辅助功能,例如预定义的文件夹和路径操作功能。

    ole32, oleaut32:OLE 是 ActiveX、DCOM 等的基础。许多较新的操作系统 API 都是 COM 对象。

    uuid:高级 OLE 用法。

    odbc32, odbccp32 : 使用非常陈旧且不友好的 API 访问数据库。

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 2011-12-28
      • 2011-05-03
      • 1970-01-01
      • 2010-11-05
      • 2017-04-06
      • 1970-01-01
      相关资源
      最近更新 更多