Как разместить лицензированные элементы управления .Net в неуправляемом приложении C++?

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

  •  09-06-2019
  •  | 
  •  

Вопрос

Мне нужно разместить и запустить управляемые элементы управления внутри неуправляемого приложения C++.Как это сделать?

Запустить нелицензионные элементы управления обычно просто:

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

Однако при использовании лицензионного элемента управления нам необходимо каким-то образом встроить в проект файл .licx (ссылка лицензирование приложений).В неуправляемом приложении C++ необходимый связующий элемент, похоже, не работает.Предполагается, что инструмент lc.exe может встроить лицензию в качестве ресурса сборки, но либо мы не указали правильный вызов, либо произошел сбой молча.Любая помощь будет оценена по достоинству.

Это было полезно?

Решение

Ответ зависит от конкретного компонента, который вы используете.Обратитесь в службу поддержки вашего компонента ИЛИ прочитайте документацию о том, что необходимо для развертывания его компонента.
По сути, разработчики компонентов могут свободно реализовывать лицензирование. как они считают нужным.С файлом .licx компонент должен иметь возможность делать все, что пожелает разработчик, с помощью GetKey и IsValidKey (как описано в опубликованной вами ссылке).Поэтому, если GetKey проверяет наличие файла .licx в каталоге компонента, вам просто нужно убедиться, что он есть.
AFAIK клиентской сборке не нужно ничего делать, кроме создания экземпляра элемента управления.

Кроме того, если вы опубликуете название компонента и команду lc.exe, которую вы используете, люди смогут взглянуть..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top