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

Добрый день!

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

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 проблема поле отмечено а само значение отсутствует

Видимо проблема здесь:

si.pHardwareID := PWideChar(HardwareID.text);

pHardwareID имеет тип PChar, а не PWideChar:

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

К сожалению замена PWideChar на PChar ни к чему не приводит
Результат тот же.

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

Спасибо за помощь, нашел решение самостоятельно
вот необходимый вариант

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

Теперь все вери гуд!

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

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

Осталась одна маленькая проблема

    si.nRunningTimeLimit := 60;

или

var
  x : byte;
....
    x := 60;
    si.nRunningTimeLimit := x;
....

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

Не забываем про si.flags :slight_smile: Для nRunningTimeLimit надо будет добавить HAS_TIME_LIMIT

Про флаг помню и использую, галочка появляется а само значение НЕТ :frowning:

галочка появляется а само значение НЕТ

Это бага. Поправим в самой ближайшей версии.

Спасибо, будем ждать