用Depends查看到程序引用的Dll,如何在程序里指定这些Dll目录呢?因为在不同的系统同一个Dll不一样,偶想在程序中指定开发时所引用的Dll文件

用Depends查看到程序引用的Dll,怎么在程序里指定这些Dll目录呢?因为在不同的系统同一个Dll不一样,偶想在程序中指定开发时所引用的Dll文件
用Depends查看到程序引用的Dll,怎么在程序里指定这些Dll目录呢?因为在不同的系统同一个Dll不一样,偶想在程序中指定开发时所引用的Dll文件目录,如XP下的MFC42.dll就跟2003的不一样,大小就相差200多K

------解决方案--------------------
1:在打包程序里把你所需要的dll放在你可执行程序的同一路径下就可以了。
2:或者直接放在system32目录下。
建议第一种。

这是打包程序干的事,开发时不用指定。


------解决方案--------------------
楼主的思考力不错。那些dll通常存在系统目录下,你可以用GetSystemDirectory来取得这个目录。但如果是你自己开发的dll,还是存在和exe文件同一个目录下吧,这也是绿色软件的一个要求。另外鄙人认为,依赖度越小的程序执行效率越高,其实mfc程序完全可以使用静态库来避免依赖mfc42.dll。最后,如楼主所说,qq十有八九是用VC开发的。
------解决方案--------------------
所以我推荐放在自己目录下嘛。
应用程序寻找DLL的顺序如下:
1:自己所在目录
2:system目录,windows目录

------解决方案--------------------
首先,你要明白自己在使用什么dll,这依赖于你的编译设置。楼上说的有些道理,但我要提醒你的是一个特例:对于ATL COM的dll,这样的dll需要被注册,然后你程序调用时是依赖于注册表的。如果你在你的机器上有多个不同路径下的该dll,则最后注册的一个将是你的程序使用的那一个。
------解决方案--------------------
当程序需要用到一个dll,首先会在自身的目录下寻找,如果找不到,就会到环境变量去查找,即我的电脑-> 属性-> 高级 Path下的路径

所以推荐把需要用到的所有dll都放在exe目录下