Как настроить пробную версию для библиотеки динамических ссылок? - PullRequest
4 голосов
/ 27 ноября 2009

Я разрабатываю условно-бесплатную SDK-подобную библиотеку (с использованием C ++). Библиотека представляет собой простой dll, предоставляет некоторые функции. Итак, мой первый вопрос: какие типы испытаний возможны для простых DLL? Я не хочу сокращать функциональность пробной DLL, поэтому я склонен использовать временную пробу.

Я примерно понимаю, как отслеживать время использования библиотеки, поэтому второй вопрос - как указать истечение пробного периода?

На данный момент есть две идеи:

  1. По истечении периода оценки библиотека не сможет загрузиться.

    или

  2. По истечении оценочного периода библиотека успешно загрузится, но отобразит какой-то надгробный экран.

Но оба они кажутся довольно грубыми, поэтому не могли бы вы дать несколько советов по этому поводу?

Спасибо!

Ответы [ 3 ]

1 голос
/ 27 ноября 2009

В (1) вам придется потерпеть неудачу в DllMain () по истечении срока действия. Это не очень хорошо, если ваша DLL присутствовала в таблице импорта программы, которая использует вашу DLL.

В (2) у вас больше выбора и он более дружелюбен ИМХО.

Просто установите внутренний флаг по истечении срока действия, а затем откройте диалоговое окно.

Если пользователь продолжает вызывать ваши экспортированные функции, вы устанавливаете флажок и не выполняете все вызовы функций в вашей DLL.

В идеале, если у вас есть функция init в вашей DLL, тогда при вызове init () выведите диалоговое окно истечения срока действия и верните специальный код, чтобы разработчик знал и существовал и для своей программы.

НТН, Элиас

1 голос
/ 28 ноября 2009

Если я правильно вас понимаю после истечения срока действия, вы не хотите, чтобы люди вызывали функции из таблицы экспорта вашей Dll.

Обратите внимание, что если ваша Dll будет загружена успешно, люди по-прежнему смогут вызывать ваш Dll-код, даже если отображается всплывающий экран. Таким образом, вам придется охранять все экспортируемые функции с помощью проверки времени.

Движение к ворчащему экрану имеет несколько недостатков: а) разработчикам не нравится, когда сторонние библиотеки выскакивают на своих экранах. б) Что если вы используете lib в приложении без пользовательского интерфейса (например, в сервисе, который не взаимодействует с рабочим столом)?

На мой взгляд, лучше всего разрешить загрузку библиотеки (для случаев, когда ваша DLL находится в IAT других модулей), но все экспортированные функции вашего интерфейса возвращают код ошибки, если пробная версия истекла. Таким образом, приложение, использующее вашу библиотеку, может игнорировать функциональность вашего Dll или отображать сообщение о том, что срок его действия истек.

Надеюсь, это поможет.

1 голос
/ 27 ноября 2009

Вы можете вызвать ошибку «Срок действия пробной лицензии истек» при вызове одной из ваших функций DLL. Это более четко и понятно пользователю.

my2cents
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...