如何在非托管C ++应用程序中托管许可的.Net控件?
时间:2020-03-05 18:49:54 来源:igfitidea点击:
我需要在纯非托管C ++应用程序内部托管和运行托管控件。这该怎么做?
运行未经许可的控件通常很简单:
if (SUCCEEDED(ClrCreateManagedInstance(type, iid, &obj))) { // do something with obj }
但是,当使用许可的控件时,我们需要以某种方式将.licx文件嵌入到项目中(请参阅应用程序许可)。在非托管的C ++应用程序中,必需的胶水似乎不起作用。 lc.exe工具应该能够将许可证作为程序集资源嵌入,但是我们没有正确地进行调用,或者默默地失败了。任何帮助,将不胜感激。
解决方案
回答
答案取决于我们使用的特定组件。请与组件帮助台联系,或者阅读有关部署组件的文档。
基本上,组件开发人员可以自由地实施他们认为合适的许可。使用.licx文件,组件需要能够执行开发人员通过GetKey和IsValidKey进行的操作(在发布的链接中进行了说明)。
因此,如果GetKey在组件目录中检查.licx文件,则只需要确保该文件在其中即可。
AFAIK客户端程序集除了实例化控件外不需要执行任何操作。
另外,如果我们发布组件的名称和所使用的lc.exe命令,人们也可以看看。