2009-11-27 7 views
4

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

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

Есть две идеи для настоящих:

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

    или

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

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

Спасибо!

+0

Спасибо всем за ваши ответы! Я решил использовать следующий метод: разрешить загрузку библиотеки и вернуть код ошибки, когда приложение вызывает одну из моих функций dll, если срок действия пробной версии истек. – DenisL

ответ

1

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

my2cents 
1

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

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

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

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

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

НТН, Элиас

1

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

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^