Page 1 of 1

Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 7:01 am
by Aldes
Добрый день!

Подскажите плиз в чем собственно ошибка

si.flags := HAS_USER_NAME OR HAS_EMAIL OR HAS_HARDWARE_ID OR HAS_USER_DATA;
si.pUserName := PWideChar(Name.Text);
si.pEMail := PWideChar(EMail.Text);
si.pHardwareID := PWideChar(HardwareID.text);
si.nUserDataLength := j;
si.pUserData := @a;

где Name, Email и HardwareID поля ввода на форме типа TEdit
a : array (0..255) of byte

собственно все отрабатывает великолепно за одним исключением
полученный серийный номер при импорте в оболочку принимается но вот с полем HARDWAREID проблема поле отмечено а само значение отсутствует

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 7:09 am
by Admin
Видимо проблема здесь:

Code: Select all

si.pHardwareID := PWideChar(HardwareID.text);
pHardwareID имеет тип PChar, а не PWideChar:

Code: Select all

  VMProtectSerialNumberInfo = packed record
    flags: Integer;
    pUserName: PWideChar;
    pEMail: PWideChar;
    dwExpDate: Longword;
    dwMaxBuildDate: Longword;
    nRunningTimeLimit: Byte;
    pHardwareID: PChar;
    nUserDataLength: Longword;
    pUserData: PByte;
  end;

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 7:17 am
by Aldes
К сожалению замена PWideChar на PChar ни к чему не приводит
Результат тот же.

Еще раз подчеркну Delphi 2009 (Если я правильно понимаю то PWideChar и PChar синонимы)
Видимо необходимо провести преобразование но к чему (к какому типу) не могу понять

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 7:27 am
by Aldes
Спасибо за помощь, нашел решение самостоятельно
вот необходимый вариант

Code: Select all

si.pHardwareID := PChar(PAnsiChar(AnsiString(HardwareID.text)));
Теперь все вери гуд!

Вам респект за VMProtect и за качественный хелп !!!!

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 7:27 am
by Admin

Code: Select all

si.pHardwareID := PAnsiChar(AnsiString(HardwareID.text));

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 9:27 am
by Aldes
Осталась одна маленькая проблема

Code: Select all

    si.nRunningTimeLimit := 60;
или

Code: Select all

var
  x : byte;
....
    x := 60;
    si.nRunningTimeLimit := x;
....
Значение не передается и в оболочке показывается значение по умолчанию = 30

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 9:47 am
by Admin
Не забываем про si.flags :) Для nRunningTimeLimit надо будет добавить HAS_TIME_LIMIT

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 9:50 am
by Aldes
Admin wrote:Не забываем про si.flags :) Для nRunningTimeLimit надо будет добавить HAS_TIME_LIMIT
Про флаг помню и использую, галочка появляется а само значение НЕТ :(

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 10:07 am
by Admin
галочка появляется а само значение НЕТ
Это бага. Поправим в самой ближайшей версии.

Re: Генератор лицензий (DLL) и DELPHI 2009

Posted: Mon Oct 03, 2011 10:34 am
by Aldes
Спасибо, будем ждать