Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

В предыдущих постах серии я упоминал о том, что разработка новой версии приложения велась в Delphi 2007. Теперь настала очередь перевода проекта на Delphi с поддержкой юникод. В принципе об этой процедуре написано довольно много. Поэтому я остановлюсь только на тех моментах, которые вызвали у меня затруднения. Как обычно в формате “заметок на полях”.

Прежде всего, ASProtect. Я уже писал о том, как правильно осуществлять вызов функций ASProtect API. Это не сложно:

CheckKeyAndDecrypt( PChar(ansistring(eCode.Text)), 
PChar(ansistring(eName.Text)), True )

Однако, описание функции CheckKeyAndDecrypt выглядит следующим образом:

function  CheckKeyAndDecrypt      ( Key, Name : PChar; SaveKey: Boolean ): Boolean; external aspr_ide name ‘CheckKeyAndDecrypt';

Проблема же может возникнуть при вызове функций подобных этой:

function  GetRegistrationInformation   ( ModeID : Byte; var Key : PChar; var Name : PChar ): Boolean; external aspr_ide name ‘GetRegistrationInformation';

Параметры Key и Name – модифицируемые и передать выражение в качестве параметра уже нельзя.

Что делать в этом случае? Да просто изменить заголовки в файле aspr_api.pas.

function  GetRegistrationInformation   ( ModeID : Byte; var Key : PANSIChar; var Name : PANSIChar ): Boolean; external aspr_ide name ‘GetRegistrationInformation';

Вызов остается предельно простым:

var
pchKey, pchName: PANSIChar;

GetRegistrationInformation(0, pchKey, pchName);

Собственно, данный пример наглядно показывает, как работать с функциями, реализованными в dll.

Я покупал ASProtect SKE в 2006-м году и на последние версии продукта моя лицензия не распространяется. Однако, как выяснилось, самый простой вариант – скачать последнюю версию протектора и взять оттуда aspr_api.pas. Все исправления в заголовки там внесены, и с предыдущими версиями продукта работает прекрасно.Там же можно посмотреть и обновленные примеры использования.

Кроме этого, я обнаружил пару проблем с cxGrid (сохранение и восстановление заголовков полей). Но, об этом я напишу по факту решения данной проблемы.

Другие статьи серии:

Редизайн интерфейса приложения. #0
Редизайн интерфейса приложения. #1
Редизайн интерфейса приложения. #2
Редизайн интерфейса приложения. #4
Редизайн интерфейса приложения. #5
Редизайн интерфейса приложения. #6
Редизайн интерфейса приложения. #7
Редизайн интерфейса приложения. #8


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика