OCX文件中的许可证

时间:2015-09-05 16:14:01

标签: visual-c++ vc6

  

请告诉我OCX许可如何运作。

对于OCX,我收到以下错误:

以下控件给出以下错误。 pvdtb60.ocx

  

OLE控制的CoCreateInstance {FD5CA3F6-52B9-11D2-ABB1-0040054FC6FB}失败。   结果代码:0x80040112

该控件已在regsvr32中注册。

  

0x80040112错误代码对应CLASS_E_NOTLICENSED。

请告诉我,OCX中的许可证如何工作以及解决此问题的方法可能是什么。相同的程序正在使用传统的XP机器,因此我选择了所有许可证条目(来自regedit,[HKEY_CLASSES_ROOT \ Licenses])无效。

遗留应用程序是VC6.0(在Windows XP上正常运行),新应用程序在Visual Studio 2010上运行。

感谢。

1 个答案:

答案 0 :(得分:0)

OCX许可证有点历史。我将在这里假设您正在维护一个已有15年历史的内部申请,并且拥有来自第三方供应商的合法许可的OCX,该OCX不再存在,或者您只是问他们问题。 (我假设这个,因为这个问题让我直接回到了1998年,这就是我脑子里直接出现的问题。)

如果许可证无效,任何OCX都无法使用该错误代码创建。它可能使用复杂和复杂的机器属性加密验证来验证存储在注册表中的许可证密钥。

但是,它们通常通过查找安装在已知位置的文本文件(尝试Program Files \ PRODUCTNAME)来工作,并检查它是否包含正确的文本。该文本通常类似于"版权所有(C)Contoso Corporation,1998"。

要了解实际发生的情况,请使用SysInternals Process Monitor监视应用程序启动时的活动。如果你看到" NOTFOUND"在某些文件上,例如" license.txt"那你很幸运您所要做的就是将旧版XP框中的相关文件放在正确的位置,这样你就是金色的。

最糟糕的情况是,您可以使用NOP修补许可证检查。毕竟是1998年。