Немогу заставить понимать VMProtect свои лицензии в Delphi 2010.
Когда компилирую пример "Examples\Licensing\Delphi\" в Delphi 7 всё работает, ключ принимает.
Когда компилирую в Delphi 2010, то всегда выдает ошибку 2.
Может есть какие-то особенности в работе с Delphi 2010?
Как починить?
Delphi 2010 и Licensing System
Re: Delphi 2010 и Licensing System
Да - особенности есть. Из-за того, что в Delphi 2010 "String" стал аналогом "UnicodeString" надо внимательно следить за типами передаваемых параметров в функции лицензирования.
В дельфовом примере достаточно изменить строку:
на
В дельфовом примере достаточно изменить строку:
Code: Select all
nState := VMProtectSetSerialNumber(PAnsiChar(edSerialNumber.Text));
Code: Select all
nState := VMProtectSetSerialNumber(PAnsiChar(AnsiString(edSerialNumber.Text)));
Re: Delphi 2010 и Licensing System
Разобрался. Я переименовал VMProtectSDK32.dll, хотел скрыть присутствие VMP - вот и не работало.
DLL Box сильно затормозит работу?
DLL Box сильно затормозит работу?
Re: Delphi 2010 и Licensing System
VMProtectSDK32 необходимо программе ТОЛЬКО для режима отладки самой программы. После защиты эта DLL программе больше не нужна. Как работает проверка серийных номеров в режиме отладки - читайте хелп (Система лицензирования - Тестовый режим работы).Разобрался. Я переименовал VMProtectSDK32.dll, хотел скрыть присутствие VMP - вот и не работало.
Вы планируете использовать DLL Box для бандлинга VMProtectSDK32?DLL Box сильно затормозит работу?
Re: Delphi 2010 и Licensing System
В VMProtectSDK.pas меняем
const
// VMProtectDLLName = 'VMProtectSDK32.dll';
VMProtectDLLName = 'abc123.dll';
Переименовываем VMProtectSDK32.dll в abc123.dll, затем защищаем VMProtect'ом => не работает система лицензирования.
Пойду читать хелп, кажется теперь понял идею с длл...
const
// VMProtectDLLName = 'VMProtectSDK32.dll';
VMProtectDLLName = 'abc123.dll';
Переименовываем VMProtectSDK32.dll в abc123.dll, затем защищаем VMProtect'ом => не работает система лицензирования.
Пойду читать хелп, кажется теперь понял идею с длл...
Re: Delphi 2010 и Licensing System
Нельзя менять имя VMProtectSDK32/VMProtectSDK64!
VMProtect находит ссылки на API из VMProtectSDK (по имени DLL и имени API) и меняет их на свой код. Если переименовать SDK-ную DLL-ку, то VMProtect не будет менять вызовы API на свои и защищенная программа по прежнему будет работать в тестовом режиме.
VMProtect находит ссылки на API из VMProtectSDK (по имени DLL и имени API) и меняет их на свой код. Если переименовать SDK-ную DLL-ку, то VMProtect не будет менять вызовы API на свои и защищенная программа по прежнему будет работать в тестовом режиме.