mfc 可执行文件怎样才能找到动态库?
我知道设置mfc工程使用"静态库编译"还是"动态库编译"的方法。我使用动态库编译生成了可执行文件,把其放在没有vs环境的机器上,自然找不到DLL。我想问的是:把缺少的dl...
我知道设置mfc工程使用"静态库编译"还是"动态库编译"的方法。我使用动态库编译生成了可执行文件,把其放在没有vs环境的机器上,自然找不到DLL。
我想问的是:
把缺少的dll文件与可执行文件放在同一个文件夹下就行么?还是必须放在system32文件夹下呢?依据是?
可执行文件是通过什么来得知dll所在目录,从而可以去那个目录加载dll的呢?在我的工程下,有这个选项么?可以设置我生成的可执行文件,去哪个目录下获取所依赖的dll文件。
望高手告知! 展开
我想问的是:
把缺少的dll文件与可执行文件放在同一个文件夹下就行么?还是必须放在system32文件夹下呢?依据是?
可执行文件是通过什么来得知dll所在目录,从而可以去那个目录加载dll的呢?在我的工程下,有这个选项么?可以设置我生成的可执行文件,去哪个目录下获取所依赖的dll文件。
望高手告知! 展开
1个回答
展开全部
首先要明白,DLL有两种,一种是传统DLL,一种是组件/控件模式的DLL
传统DLL,要放在当前工作目录或PATH环境参数所指向的目录之一即可,DLL可以移动文件位置,只要确保windows可以通过PATH参数找到它。
组件DLL,采用COM及其后续规范,文件需要通过regsvr32等方法进行系统注册,注册后其位置和信息记录在注册表中,注册之后位置不可移动。
传统DLL,要放在当前工作目录或PATH环境参数所指向的目录之一即可,DLL可以移动文件位置,只要确保windows可以通过PATH参数找到它。
组件DLL,采用COM及其后续规范,文件需要通过regsvr32等方法进行系统注册,注册后其位置和信息记录在注册表中,注册之后位置不可移动。
追问
多谢大哥
当前工作目录,指的是.exe可执行文件所在目录吗?那个PATH环境变量,一般是干啥用的呢?就是用来指明动态链接库的路径的?
追答
当前工作目录,在默认情况下是.exe可执行文件所在目录。
PATH环境变量,就是windows系统的配置参数之一,你可以通过命令行path命令看到,也可以在“我的电脑”属性里面看到。这个可以自己增加,不过一般推荐DLL放到windows目录下的system32子目录下,这里是很多DLL的标准存放位置,也是PATH默认肯定有的目录。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询