关于用ATL技术开发DLL

ssh8888 2003-02-11 12:02:26
各位师兄:
新年好!
小弟遇到一个难题,我用VC++开发了一个DLL,但它不能改变路径,在VC++生成的原路径下可以用,一旦改变路径就出错,我在另一种开发语言中直接引用原路径下的DLL可以用,我把那个DLL库拷贝出来,放到我现在用的文件夹中,再重新引用就出错,我急用,请帮我吧!
...全文
24 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DNCS 2003-04-16
  • 打赏
  • 举报
回复
up
chschw 2003-02-28
  • 打赏
  • 举报
回复
听话,没错!
jediknight 2003-02-27
  • 打赏
  • 举报
回复
COM组件具有路镜透明性,其原理就是我上面说的了,因此COM组件可以随意移动位置,你检查一下是不是程序中用到了相对路径引起的
ssh8888 2003-02-13
  • 打赏
  • 举报
回复
绝地武士:
你好!我是复制了一个DLL库,原来的还在原地方,并没有剪切掉,SORRY,我问错了,请再帮我吧,小弟谢谢了。
jediknight 2003-02-12
  • 打赏
  • 举报
回复
COM组件依靠一个ClassID来标志自己,在注册表中表现为{2840E5FC-0240-42BB-A600-EAAD12E2F018}这样的一个主键,其下有一个子键InprocServer32,它的默认值是这个COM组件的位置如:H:\工作项目\江西省水利厅项目\关于软件使用时间限制的DLL\20021030VersionClient\DLL\NOA.dll。
调用该DLL时,操作系统根据以上信息,将依据ClassID找到该DLL的路径运行,你将DLL移走了,操作系统仍然到原来的路径找这个DLL,当然找不到,解决办法是移动了DLL后,用regsvr32重新注册该DLL,注册后即可更新InprocServer32子键的值,系统才可以找到这个DLL
jediknight 2003-02-12
  • 打赏
  • 举报
回复
DLL经过VC++编译后自动注册了,系统到注册时的路径去找这个DLL,先在你移动了该DLL,系统当然找不到了,解决办法:使用regsvr32命令重新注册该DLL就可以使用了
ssh8888 2003-02-11
  • 打赏
  • 举报
回复
各位师兄:
新年好!
小弟的难题,那位大哥肯帮忙,我十二分的感谢。请高手指导,再次感谢,相信你的付出,会得到所有会员的认可和肯定的,我再次感谢,此刻的我,束手无策,迫切需要帮助,请你伸出援助之手吧。

5,221

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 质量管理/软件测试
功能测试压力测试安全性测试 个人社区 湖南省·长沙市
社区管理员
  • 软件测试
  • 虫无涯
  • 小博测试成长之路
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家加入到软件测试的社区,在这里,希望大家勇于发表自己的看法,欢迎大家分享自己在软件测试工作过程中遇到的问题以及工作经验分享。

1.想转行的小伙伴,遇到问题没有及时回复的,可以私聊小博进行反馈

2.大家对社区有好的建议,都可以在社区发帖进行反馈

推荐大家学习的软件测试入门笔记:软件测试入门学习笔记

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