在VC++中选择链接方法的最佳实践是什么?任何/一切都可以静态链接吗?
在动态链接的项目中,链接库的相对/绝对位置是否重要?
优缺点都有什么 ?
补充:我主要是指lib文件.它们的行为与dll链接相同吗?
动态链接允许您升级单个DLL而无需重新编译应用程序.这就是为什么可以在不重新编译应用程序的情况下升级Windows的原因,因为动态链接器能够确定dll中的入口点,前提是方法名称存在.
静态链接您的应用程序有一个好处,即对链接代码的调用不会间接,因此它们运行得更快.这可能会对极其依赖性能的代码产生影响.
使用DLL还可以帮助您减少内存占用,因为有效地您只需要根据需要加载库,并且可以在完成后卸载它们(想想应用程序插件,只有在打开图像时加载图像浏览库等)
编辑:Robert Gamble添加了一条我错过的评论:DLL被加载到操作系统中所有进程共享的内存中.这意味着如果两个程序(或程序的两个实例)使用相同的DLL,它们将使用加载到内存中的相同DLL,这将进一步减少您的整体内存使用量.