num*_*l25 19 c c++ visual-studio-2008 visual-c++
我一直在读几本游戏书.他们总是喜欢通过动态链接创建引擎作为静态库.我是c ++的新手,所以当谈到静态库和动态链接库时,我并不是很了解.我所知道的是静态库增加了程序的大小,在你的程序中需要加载DLL链接库.
[编辑]
我玩游戏几乎看起来他们使用DLL来加载声音,灯光,而不是单独加载.当水平加载.因为你在游戏菜单中不一定需要它.
Dou*_*rie 20
动态链接库需要与位置无关; 这可能会导致某些处理器体系结构的性能低效.
当包含在程序中时,可以优化静态库,例如,通过剥离死代码.这可以提高缓存性能.
通过位置独立,他意味着由于游戏引擎和DLL完全分离,DLL是独立的,不能交织到游戏引擎代码中,而静态链接库允许编译器使用你的游戏引擎代码和优化图书馆代码.
例如,假设有一个小函数,编译器认为应该内联(直接复制代替函数调用).然后使用静态库,编译器将能够内联此代码,因为它知道代码是什么(您在编译时链接).但是,对于动态库,编译器将无法内联该代码,因为它不知道代码是什么(因为它将在运行时链接).