当我要设置我的开发环境时(SDLSimple DirectMediaLayer)
,我下载了网站提供的包,从readme.txt
文件我发现我需要两者.lib
and .dll
...
我的问题是:
- 我不确定我的理解是否正确:在我看来,
.lib
for windows
就好像.a
for linux
, is 静态库, and .dll
for windows
就好像.so
for linux
, is 共享库, 它是否正确 ?
- 如果上面的想法是正确的,我想我们只能使用
.lib
or .dll
,既然他们做的工作是一样的?那么为什么要费心去同时获得两个呢在一个程序中 ?
- 我不太明白
.dll
,如果我没记错的话,优点之一是shared library
它们可以在程序运行时更新吗?如果我们更新.dll
文件,怎么可以一个正在运行的程序来了解一下的变化.dll
并将其重新加载到内存中?
在VC中,有两种库。
第一种类型是“真实库”,由“静态库项目”生成,其中包含可以链接和运行的所有内容,无需 dll。
第二种是“导入库”,由“dll项目”生成,只包含link.exe需要的符号。您可以链接到该库,但需要 dll 才能运行。
使用 dll 有两种方法。链接到“导入库”或“使用 LoadLibrary API”。
加载 dll 后,您无法更改 dll 文件。
但是如果使用LoadLibrary加载dll,则可以使用FreeLibrary卸载dll,更改dll然后使用LoadLibrary加载新的dll。当然,您需要监视某些内容才能调用此过程。
更简单的方法是,使用加载程序进行更新,然后加载真正的 exe。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)