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