Como hospedar controles .Net licenciados em aplicativos C++ não gerenciados?

StackOverflow https://stackoverflow.com/questions/51436

  •  09-06-2019
  •  | 
  •  

Pergunta

Preciso hospedar e executar controles gerenciados dentro de um aplicativo C++ puramente não gerenciado.Como fazer isso?

Executar controles não licenciados normalmente é simples:

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

Ao usar um controle licenciado, entretanto, precisamos incorporar de alguma forma um arquivo .licx no projeto (ref. licenciamento de aplicativos).Em um aplicativo C++ não gerenciado, a cola necessária parece não funcionar.A ferramenta lc.exe deveria ser capaz de incorporar a licença como um recurso de montagem, mas ou não estávamos realizando a invocação correta ou ela falhou silenciosamente.Qualquer ajuda seria apreciada.

Foi útil?

Solução

A resposta depende do componente específico que você está usando.Entre em contato com o suporte técnico do seu componente OU leia a documentação sobre o que é necessário para implantar seu componente.
Basicamente, os desenvolvedores de componentes são livres para implementar o licenciamento como eles acharem adequado.Com o arquivo .licx o componente precisa ser capaz de fazer o que o desenvolvedor desejar via GetKey e IsValidKey (explicado no link que você postou).Portanto, se GetKey verificar um arquivo .licx no diretório do componente - você só precisa ter certeza de que ele está lá.
AFAIK, o assembly do cliente não precisa fazer nada, exceto instanciar o controle.

Além disso, se você postar o nome do componente e o comando lc.exe que está usando, as pessoas poderão dar uma olhada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top