服务程序或者dll,放在程序目录和system32目录下有什么区别

int64 2010-07-12 11:46:53
程序需要一个服务程序和若干个dll,在制作安装程序的时候,
将服务程序和dll放在程序的目录,或者放到系统system32目录,这2个位置有什么区别?
对程序运行有什么影响?
...全文
207 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sczyq 2010-07-14
  • 打赏
  • 举报
回复
现在的硬盘大大的,没必要放到 Windows 等共享目录里,而放到应用程序所在的当前目录,优点是便于维护、升级、卸载等。缺点只是占用硬盘空间。而现在的硬盘大大的,因此缺点就微不足道,就没必要放到 Windows 等共享目录里。
sue3140 2010-07-14
  • 打赏
  • 举报
回复
good!~ 好贴。。解答了我现在的疑问 哈哈
Wade_Song 2010-07-14
  • 打赏
  • 举报
回复
学习了。。。现在经常使用Dll。。。
xjq2003 2010-07-12
  • 打赏
  • 举报
回复
假如lpPathName参数指定了一个路径,SetDllDirectory函数支持一个预备的搜索顺序。这个预备的搜索顺序如下:

1. 应用程序所在的路径

2. lpPathName参数指定的目录

3. Windows SYSTEM目录。通过调用GetSystemDirectory函数可以获取这个目录的路径。

4. 16位系统的目录。并没有函数可以获取这个目录的路径,但是它会被查找。

5. Windows目录。通过调用GetWindowsDirectory函数可以获取这个目录的路径。

6. PATH环境变量指定的路径。请注意,这并不包括每个应用程序的应用程序路径注册表项中指定。在应用程序路径注册表项的键值并不作为DLL的搜索路径。



如果lpPathName参数为一个空字符串,当前目录将会从搜索顺序中删除。

SetDllDirectory 有效地禁用安全DLL搜索模式,而在搜索指定的目录路径。要恢复安全 DLL搜索模式的SafeDllSearchMode注册表值的基础和恢复当前目录到搜索顺序,调用 lpPathName的参数值为NULL的SetDllDirectory函数。

ccrun.com 2010-07-12
  • 打赏
  • 举报
回复
如果没有刻意设置NTFS文件权限的话,没什么影响.
int64 2010-07-12
  • 打赏
  • 举报
回复
对于不同的WINDOWS用户,会不会有权限的区别?
ccrun.com 2010-07-12
  • 打赏
  • 举报
回复
没什么大的区别,只是不过system32目录默认存在于path环境变量中.
YeBinYe 2010-07-12
  • 打赏
  • 举报
回复
应用程序在调用这些函数的时候,会按照如下的顺序查找这些动态连接库文件:
(1)应用程序所在的当前目录
(2)Windows目录
(3)Windows系统目录
(4)系统环境变量指示的目录

如果在这些目录中找不到DLL文件,程序就会出现运行异常。所以,为了保证程序的正常运行,用户最好把需要的特定动态连接库放在程序所在的目录中,这样也可以避免各种潜在的覆盖冲突。
___NULL 2010-07-12
  • 打赏
  • 举报
回复
没太大区别
放 SYSTEM32 所有程序都可以直接读取(有环境变量设置)
放程序自己的目录,除非其他程序指定目录,否则无法自己找到
或者可以这么说 SYSTEM32 是为了 DLL 之类的文件能共享而设立的
我不懂电脑 2010-07-12
  • 打赏
  • 举报
回复
放在system目录可以共享给其他程序使用,放在程序的目录一般就这个程序用,不需要共享。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧