c++ - 如何在非托管 C++ 应用程序中托管许可的 .Net 控件?

标签 c++ .net unmanaged

我需要在纯非托管 C++ 应用程序中托管和运行托管控件。如何做到这一点?

运行未经许可的控件通常很简单:

if (SUCCEEDED(ClrCreateManagedInstance(type, iid, &obj)))
{
    // do something with obj
}

然而,当使用许可控件时,我们需要以某种方式将 .licx 文件嵌入到项目中(引用 application licensing)。在非托管 C++ 应用程序中,必要的胶水似乎不起作用。 lc.exe 工具应该能够将许可证作为程序集资源嵌入,但要么我们没有挥动正确的调用,要么它默默地失败了。任何帮助将不胜感激。

最佳答案

答案取决于您使用的特定组件。联系您的组件帮助台或阅读有关部署其组件所需的文档。
基本上,组件开发人员可以在他们认为合适的情况下自由实现许可。使用 .licx 文件,组件需要能够通过 GetKey 和 IsValidKey 执行开发人员希望的任何操作(在您发布的链接中进行了解释)。 因此,如果 GetKey 检查组件目录中的 .licx 文件 - 您只需确保它在那里。
据我所知,客户端程序集除了实例化控件外不需要做任何事情。

此外,如果您发布组件的名称和您正在使用的 lc.exe 命令,人们可能会看...

关于c++ - 如何在非托管 C++ 应用程序中托管许可的 .Net 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51436/

相关文章:

c# - 什么是编程中的托管代码或非托管代码?

c++ - 使用二次公式的简单二次方程计算器

c++ - std::_Bit_rerefence& 类型的非常量引用的无效初始化

.Net 插件框架选择,启用定义插件顺序(包括链接插件)

c# - 使用哈希码检测 List<string> 的元素是否已更改的示例 C#

c# - 托管与非托管类型

c++ - 使用 constexpr 初始化数组?

javascript - Chrome 插件随机向我的 C++ native 主机应用程序发送垃圾

.net - 在安装了 VS2010 的机器上和在安装了 7.1 SDK 的机器上构建之间的差异

c# - 从非托管项目 (C/C++ VS2005) 调用托管代码 (C#/Visual Basic VS2010)