请教一个com的问题,关于右键插件

chenjiawei007 2012-04-16 03:40:30
问题是这样由来的,公司有2个产品,都用到了一个右键DLL插件,
由于代码是一样的,dll中的guid也就一样了,当初两个软件没在一起用没问题,一起用就有问题了。


只要注册其中一个dll,另外一个右键的dll就会被冲掉,我修改了一个idl中的guid,查看了注册表,已经生成了两份,

但是在注册dll是还是发生了这样的问题,请问下,com使用时除了以guid做问一标示入口,还涉及到其他的东西吗?
...全文
112 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2012-04-17
  • 打赏
  • 举报
回复
设置菜单时冲突了?
不管怎么说解决就好
chenjiawei007 2012-04-17
  • 打赏
  • 举报
回复
自己搞定了,花了一天半的时间,纠结。


rgs 文件中的

NoRemove *
{
NoRemove ShellEx
{
NoRemove ContextMenuHandlers
{
ForceRemove CopyPathExt= s '{C83A0565-90C9-4EC1-AADF-DD499E259105}'
}
}
}


ForceRemove CopyPathExt 这个一样会导致菜单冲突~。~
chenjiawei007 2012-04-16
  • 打赏
  • 举报
回复
.idl 和.rgs里的guid和progid都改了,对比了下两个dll注册后注册表中的信息也都不一样了,appid也改了,但是两个dll注册,后一个还是会把前一个的右键菜单给顶掉。无奈了,同事建议我重新开个工程,但是自己觉得guid该修改的地方都修改了,尴尬了~
fishion 2012-04-16
  • 打赏
  • 举报
回复
是以GUID还有ProgID来进行标识的,你得确保你修改的地方都正确,如果工程有生成.reg文件的,你得查看修改下那个文件
chenjiawei007 2012-04-16
  • 打赏
  • 举报
回复
CAtlModule当中的成员static GUID m_libid,是静态类, 那是不是同一个进程中只能注册一个guid的插件哦。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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