CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如果DLL与别人重名会怎么样?

楼主kevin09(kevin)2005-06-01 08:42:43 在 VC/MFC / 基础类 提问

我第一次上手用C语言进行WINDOWS编程,只是拿别人的源代码来改。其中一个DLL文件我变动很大。安装时这个DLL是复制到SYSTEM32文件夹下的,如果刚巧别人也用到了这个DLL或是有同名的DLL的话,不知会怎么样?如果会发生问题的话应该怎么样解决? 问题点数:30、回复次数:8Top

1 楼goodboy1881(积木)(谁都别拦着我在水源升星)回复于 2005-06-01 08:46:18 得分 3

1.同名的文件不会存在在同一个文件夹的下面  
  2.系统会按照系统文件夹声明的顺序查找文件,所以你最好在你的程序里面考虑到查找的问题,  
  3.为啥不更换一个名字?  
  Top

2 楼forover(天下无吥散dě宴席)回复于 2005-06-01 08:49:20 得分 1

同意楼上的,同一文件夹是不会出现同名文件的,最好是你的DLL跟你的程序放到同一目录Top

3 楼he_sl(he_sl)回复于 2005-06-01 08:50:39 得分 2

我觉得楼主是想知道到底有哪些程序会用到这个dll。这个怎么弄呢?  
  把你的Dll放到你的程序同目录下,应该先在同目录下找DLL吧Top

4 楼ahu9870(阿胡9870)回复于 2005-06-01 08:59:41 得分 12

根据MS资料上的介绍,系统对DLL的装载顺序是:  
              1).如果使用LoadLibrary显式链接,可以指定DLL的完整路径名;  
              2).如果不指定路径名,或是进行隐式链接,Windows将遵循下面搜索顺序来定位DLL  
                            i).     包含EXE文件的目录  
                            ii).   进程的当前目录  
                            iii).Windows系统目录  
                            iv).   Windows目录  
                            v).     列在PATH环境变量中的目录  
  因此,正确的做法是,为了避免与其它软件冲突,你应当把自己专用的DLL安装到你自己的应用软件目录(EXE目录)下,而不是安装到系统目录。这样,如果你的DLL名与系统目录下的DLL同名,只要在你的EXE文件同目录下存在这个DLL,系统将会首先装载你自己的DLL。Top

5 楼ahu9870(阿胡9870)回复于 2005-06-01 09:03:40 得分 0

否则,如果你覆盖了系统目录下的非系统保护DLL,当别人试图调用这个DLL时,将会出现入口点错误!Top

6 楼he_sl(he_sl)回复于 2005-06-01 09:24:10 得分 1

对了,有没有办法知道一个DLL有哪些程序可能用到?Top

7 楼kevin09(kevin)回复于 2005-06-02 05:41:22 得分 0

不想改DLL的名字是因为现在的名字很贴切,放到SYSTEM32里面,是因为不想让别人不通过SETUP就随便COPY整个程序去用,算不得是加密,糊弄一下外行了。Top

8 楼pipilupzj(皮皮鲁)回复于 2005-06-02 09:18:37 得分 11

有两个解决办法:  
  1、不改Dll名,将他放在你的程序所在目录下,要达到你说的防止别人不setuup就随便copy整个程序使用,只要在setup时,在注册表中创建一个值,然后在程序中验证一下有没有这个值就行了。另外还有许多别的方法,不一定一定要把那个同名的dll放到system32目录下。  
   
  2、如果你一定要将他放system32目录下,在你的dll名字前面加上一个前缀,比如说你的名字或者你公司的名字都可以,这样想重名就很难了Top

相关问题

  • 怎么样写DLL?
  • 写asp组件调试时重新编译dll时,总是不能替换旧的dll,怎么样释放呢??
  • 怎么样把MDIChild放到DLL文件???
  • 怎么样在MFC extension dll中使用纯资源dll
  • 怎么样重设IIS?
  • 怎么样给别人分呢??请问
  • 请问:怎么样给别人分?
  • 请帮忙:Dll名,Dll中的函数是动态的怎么样调用??????
  • 怎么样用vc注册一个dll文件?
  • 怎么样改变DLL的输出文件名???

关键词

  • dll
  • 文件夹
  • 文件
  • 系统
  • 安装
  • 目录
  • 程序
  • 放到
  • 名字
  • 同名

得分解答快速导航

  • 帖主:kevin09
  • goodboy1881
  • forover
  • he_sl
  • ahu9870
  • he_sl
  • pipilupzj

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo