Comment héberger des contrôles .Net sous licence dans une application C++ non gérée ?

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

  •  09-06-2019
  •  | 
  •  

Question

Je dois héberger et exécuter des contrôles gérés dans une application C++ purement non gérée.Comment faire cela ?

Exécuter des contrôles sans licence est généralement simple :

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

Cependant, lors de l'utilisation d'un contrôle sous licence, nous devons d'une manière ou d'une autre intégrer un fichier .licx dans le projet (réf. licence d'application).Dans une application C++ non gérée, la colle requise ne semble pas fonctionner.L'outil lc.exe est censé être capable d'intégrer la licence en tant que ressource d'assemblage, mais soit nous n'avons pas lancé l'invocation correcte, soit il a échoué silencieusement.Toute aide serait appréciée.

Était-ce utile?

La solution

La réponse dépend du composant particulier que vous utilisez.Contactez le service d'assistance de votre composant OU lisez la documentation sur ce qu'il faut pour déployer leur composant.
Fondamentalement, les développeurs de composants sont libres d'implémenter des licences comme ils le jugent bon.Avec le fichier .licx, le composant doit pouvoir faire ce que le développeur souhaite via GetKey et IsValidKey (expliqué dans le lien que vous avez publié).Donc, si GetKey recherche un fichier .licx dans le répertoire des composants, il vous suffit de vous assurer qu'il s'y trouve.
AFAIK, l'assembly client n'a pas besoin de faire autre chose que d'instancier le contrôle.

De plus, si vous publiez le nom du composant et la commande lc.exe que vous utilisez, les gens pourraient y jeter un œil.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top