Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #77, МАЙ 2005 г.

FAQ

Степан Ильин aka Step

Хакер, номер #077, стр. 077-136-3


А: Да, существуют. Уже довольно давно в продаже доступны специальные GSM-модули, предназначенные для подключения к КПК. Подсоединив один из них к своему наладоннику, ты получишь отличный девайс с функциями обычного сотового телефона.

Выделяют два типа GSM-модулей, и перед покупкой следует убедиться, что выбранная модель — это именно то, что тебе нужно. Устройства, относящиеся к первому типу, способны передавать данные и при этом поддерживают голосовую связь. Но в то же время широко распространен и другой тип модулей, которые предназначены исключительно для передачи данных (a’la GPRS-модем). По понятным причинам они тебе не подойдут.

Все необходимое программное обеспечение обычно прилагается к модулю. Но если ты спросишь бывалого пользователя телефонизированного КПК об используемом софте, то наверняка услышишь имя утилиты mobiDial (www.mobidial.com). Благодаря продуманному интерфейсу и полезным фишкам, она значительно превосходит всех своих конкурентов.

Q: На каком языке и как пишут DLL-файлы?

A: Разработка динамических библиотек мало чем отличается от создания обычных программ, а для разработки используются все те же средства. Например, Delphi. Если ты хорошо знаком с языком Object Pascal, то разобраться с разработкой DLL для тебя будет сущим пустяком. Рассмотрим это процесс на примере.

Любая динамическая библиотека, написанная на Delphi, имеет примерно следующую структуру:

library MyDLL;

uses

SysUtils,

Classes,

Forms,

Windows;

procedure HelloWorld(AForm : TForm);

begin

MessageBox(AForm.Handle, ‘Hello world!',’Наша первая DLL', MB_OK);

end;

exports

HelloWorld;

begin

end.

Ключевое слово Library указывает на то, что исходный код должен компилироваться не в исполняемый файл или модуль, а в DLL-библиотеку. Помимо этого, идущее после него значение является названием библиотеки. В моем примере описана только одна процедура, которая представляет собой вполне обычную подпрограмму для вывода окна MsgBox с сообщением «Hello world!». Ниже располагается ключевое слово exports, после которого заведено указывать процедуры и функции для экспорта. Проще говоря, перечисленные подпрограммы становятся доступными любой программе, подключившей динамическую библиотеку. В тоже время, описанные в DLL, но не экспортируемые процедуры, называются локальными и не могут быть вызваны извне. Знакомые до боли ключевые слова begin и end, как бы то ни было странно, в моем примере не содержат ни одной строчки кода. Вообще, здесь должен располагаться код, который выполняется сразу после загрузки библиотеки, однако на практике этот блок в большинстве случаев остается пустым.

Перед использованием подпрограммы из динамической библиотеки DLL необходимо загрузить в оперативную память. В случае статической загрузки DLL, библиотека помещается в память сразу после запуска импортирующего ее приложения. Это не очень эффективно, поэтому был разработан другой способ загрузки библиотеки — динамический. В этом случае она загружается в память только в случае необходимости, т.е. более экономно использует ресурсы компьютера.

Назад на стр. 077-136-2  Содержание  Вперед на стр. 077-136-4