OCX 文件中的许可证

License in OCX file

Please let me know how OCX licenses work.

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

下面的控件给出了下面的错误。 pvdtb60.ocx

CoCreateInstance of OLE control {FD5CA3F6-52B9-11D2-ABB1-0040054FC6FB} failed. Result code: 0x80040112

该控件已使用 regsvr32 注册。

0x80040112 error code corresponds to CLASS_E_NOTLICENSED.

请告诉我 OCX 中的许可证如何工作以及解决此问题的技巧。同一个程序在旧版 XP 机器上运行,因此我选择了所有许可证条目(来自 regedit,[HKEY_CLASSES_ROOT\Licenses])无济于事。

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

谢谢。

OCX 许可已成为历史。我将在这里假设您正在维护一个已有 15 年历史的内部应用程序,并且拥有来自第三方供应商的合法许可的 OCX,但该供应商已不存在,或者您只需问他们这个问题。 (我之所以这样假设是因为这个问题让我直接回到了 1998 年,这就是我突然想到的问题。)

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

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

要了解实际情况,请使用 SysInternals Process Monitor 在应用程序启动时对其进行监控 activity。如果您在某些文件上看到 "NOTFOUND",例如 "license.txt",那么您很幸运。您所要做的就是将旧版 XP 框中的相关文件放在正确的位置,您就成功了。

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