VS 动态链接库(.dll)的加载问题

时间:2024-04-14 20:00:26

VS 动态链接库(.dll)的加载问题

问题1. include directories和Libary directories的设置

在project-->properties-->configuration properties-->VC++ directories中设置外加库的头文件目录,和库文件目录,如果用的是动态库,即.lib文件只是一个引用文件,用于查找动态链接库(.dll)文件中的函数实现的位置。如果加载的是静态的lib文件,即文件中同时包含了函数的实现,就不需要dll文件了。
如果是动态的链接库,在Include directories 和Libary directories设置后只能保重不出编辑上的错误,在运行链接的时候还会报错。这是需要指明你所用的外加库是哪一个库,需要在link-->input中的Additional Dependencies输入库名(*.dll)。这里注意是debug版还是release版的dll库。

问题2. 动态链接库所放的位置

在vs自带的命令行界面中输入set,得到下面的结果。
VS 动态链接库(.dll)的加载问题


上面是系统当前状态的环境变量,程序在运行的时候,会按上面的路径依次查找所需要的动态链接库文件,也就是说你可以将dll文件放在上面所提供的任意一个路径中,当然放在当前的工作目录下也是可以的(上面没有工作目录)。如果你想在其中加入自己的路径,可以在系统的环境变量中添加。
在计算机--》属性--》环境变量中用户变量的PATH或者是系统变量的Path中添加即可。
VS 动态链接库(.dll)的加载问题


在用户的变量中添加有如下图。
VS 动态链接库(.dll)的加载问题


在系统的变量中添加有下图:
VS 动态链接库(.dll)的加载问题

图中可以看到,虽然位置不同(系统的环境变量优先),但是都添加上去了。这里要注意要重启VS后才能生效,才可以看到变化。

问题3. 环境变量Path

在path的所有路径中的文件,程序等都可以在运行窗口,win7是“搜索程序和文件”窗口,下输入文件或者程序名,按下enter键直接运行或者打开文件,对于文件来说需要加后缀。整个系统默认的运行路径都在Path所指的路径下,但是快捷方式不行,因为快捷方式对应的源文件未必在Path路径下。