我被遗留在遗留系统增强中。这是VB6 + asp(老派asp)系统。基本上,系统会进行一些数据库查询并将结果推送到activeX对象(OCX),以便以条形码形式打印信息。
我被要求修改OCX以便它不会打印一些徽标,但是,我需要保留原始徽标以用于现有的打印目的。因此,我将“另存为”原始版本并成功修改了它。
系统应将OCX安装到用户PC中。但是我注意到,不是为两种不同的打印目的而使用两种不同的OCX运行,系统仅使用最新的OCX进行两种打印。 OCX的名称不同。他们共享的唯一内容就是CLASS ID。
我如何确定新重新编译的OCX的CLASS ID,是否可以更改它?怎么样?
答案 0 :(得分:2)
CLASSID是COM维护旧控件修订版兼容性的方法。你真的不想改变它。也不建议在同一台机器上保留两个版本。最好的方法是创建一个省略横幅的控件的“新”版本,让编译器为控件分配一个新的CLSID,保持路径清洁。
答案 1 :(得分:2)
OCX没有ClassIds。然而,其中的控件确实如此。
要查看各种GUID的值(除了ClassIds之外还有其他参与者),一种简单的方法是通过Visual Studio 6.0附带的OLE视图工具,Win2k资源工具包等查看typelib信息。 / p>
答案 2 :(得分:1)
自从我处理ActiveX控件(OCX)以来已经很长时间了,但也许这个KB可以提供帮助:http://msdn.microsoft.com/en-us/library/941zhks9%28v=vs.71%29.aspx