施用动态链接库, 为什么要要把dll文件拷贝到项目中

使用动态链接库, 为什么要要把dll文件拷贝到项目中
使用动态链接库, 为什么要要把dll文件拷贝到项目中,我已经在项目属性中,链接了对应的.lib文件啊

------解决方案--------------------
dll是动态链接库,不会跟随工程一起编译,所以你的程序如果要调用动态库的函数,必须先加载动态库进你内存,然后取得函数地址才能开始调用函数,虽然这些是编译器自动帮你加入了这些加载和取函数的过程,但编译器无法确定你的动态库在运行环境的什么地方,因为你的程序可能运行在你编译的机器,也可能运行在别人的机器上,而且很难保证你会不会为这个动态库做安装程序,比如一些固有的系统动态库函数,就没必要跟着安装程序一起走,所以你的程序会先从系统目录开始找是否存在你的动态库文件,如果没有就会到你程序的当前目录寻找你的动态库文件,如果都没发现,程序就会出错了。所以,通常这种动态库文件不是放到系统目录就是放到安装目录就是这个原因。但如果你用的是静态库,那么就和动态库不一样了,静态库可跟随你的工程一起编译,所以编译完了之后就无需在拖带静态库文件一起运行,如果你在全无动态库的情况下编译程序,那么就一个可执行文件便可随处运行了,这种也叫绿色软件,无需安装便可使用。

http://zhidao.baidu.com/question/501874040.html