1

我被投入到遗留系统增强中。它是 VB6+ asp(老式 asp)系统。所以基本上,系统会做一些数据库查询并将结果推送到一个activeX对象(一个OCX)中,这样信息就会以条形码的形式打印出来。

我被要求修改 OCX,使其不打印某些徽标,但是,出于现有打印目的,我需要保留原始徽标。因此,我“另存为”原始文件并成功修改了它。

系统将OCX 安装到用户PC 中。但是我注意到,系统没有为两种不同的打印目的使用两个不同的 OCX,而是只使用最新的 OCX 进行两种打印。OCX 的名称不同。他们唯一共享的是 CLASS ID。

如何确定新重新编译的 OCX 的 CLASS ID,我可以更改它吗?如何?

4

3 回答 3

2

OCX 没有 ClassId。但是,它们内部的控件可以。

要查看各种 GUID 的值(除了 ClassId 还涉及其他),一种简单的方法是通过 Visual Studio 6.0 附带的 OLE View 工具、Win2k 资源工具包等查看 typelib 信息。

于 2012-07-18T05:06:57.663 回答
2

CLASSID 是 COM 维护旧控件版本之间兼容性的方式。你真的不想改变它。也不建议在同一台机器上保留两个版本。您最好创建一个省略横幅的控件的“新”版本,并让编译器为控件分配一个新的 CLSID,从而保持路径干净。

于 2012-07-18T03:58:53.093 回答
1

自从我处理 ActiveX 控件 (OCX) 以来已经很久了,但也许这个 KB 可以提供帮助:http: //msdn.microsoft.com/en-us/library/941zhks9%28v=vs.71%29。 aspx

于 2012-07-18T03:54:53.433 回答