Как разместить лицензированные элементы управления .Net в неуправляемом приложении C++?
Вопрос
Мне нужно разместить и запустить управляемые элементы управления внутри неуправляемого приложения C++.Как это сделать?
Запустить нелицензионные элементы управления обычно просто:
if (SUCCEEDED(ClrCreateManagedInstance(type, iid, &obj)))
{
// do something with obj
}
Однако при использовании лицензионного элемента управления нам необходимо каким-то образом встроить в проект файл .licx (ссылка лицензирование приложений).В неуправляемом приложении C++ необходимый связующий элемент, похоже, не работает.Предполагается, что инструмент lc.exe может встроить лицензию в качестве ресурса сборки, но либо мы не указали правильный вызов, либо произошел сбой молча.Любая помощь будет оценена по достоинству.
Решение
Ответ зависит от конкретного компонента, который вы используете.Обратитесь в службу поддержки вашего компонента ИЛИ прочитайте документацию о том, что необходимо для развертывания его компонента.
По сути, разработчики компонентов могут свободно реализовывать лицензирование. как они считают нужным.С файлом .licx компонент должен иметь возможность делать все, что пожелает разработчик, с помощью GetKey и IsValidKey (как описано в опубликованной вами ссылке).Поэтому, если GetKey проверяет наличие файла .licx в каталоге компонента, вам просто нужно убедиться, что он есть.
AFAIK клиентской сборке не нужно ничего делать, кроме создания экземпляра элемента управления.
Кроме того, если вы опубликуете название компонента и команду lc.exe, которую вы используете, люди смогут взглянуть..