关于在Visual Studio中创建dll项目时附加依赖库的说明



在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;

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

这些是与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等的基础。许多较新的OS api都是COM对象。

uuid: Advanced OLE usage.

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

最新更新