TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

Windows и строки -

Каждая строка в таблице строк должна иметь уникальный цело- численный идентификатор. Windows объединяет строки в сегменты, которые содержат по 16 строк каждый. Строки с идентификаторами от 0 до 15 составляют первый сегмент, строки с идентификаторами от 16 до 32 - второй и т.д. При компиляции ресурсов строки добавля- ются к выполняемому файлу в сегментах. Вы время выполнения эти сегменты загружаются в память.

Когда вашей прикладной прoграмме требуется конкретная стро- ка, Windows загружает в память весь строковый сегмент, содержащий данную строку. Для чего нужно знать о том, как Windows работает со строками? Это позволит вам при аккуратном присваивании иденти- фикаторов уменьшить объем памяти, которая требуется вашей прик- ладной программе.

Предположим, вы определили для своей прикладной программы 32 строки. Если вы присваиваете этим строкам идентификаторы с 0 по 31, к вашему выполняемому файлу добавляется два строковых сегмен- та. Каждый раз, когда ваша прикладной программе требуется строка, в память будут загружаться 16 строк, даже если некоторые строки не нужны.

Лучший способ состоит в логическом объединении строк, с ну- мерацией их от 0 до 4. Если вторая часть вашей прикладной прог- раммы требует 9 строк, поместите их во второй сегмент, нумеруя строки с 16 по 24. После этого Windows может загрузить вместе все нужные строки без загрузки других строк, которые не требуются. Хотя при этом все равно будут загружаться все сегменты, неисполь- зуемый идентификатор занимает только один байт памяти. Таким об- разом, если вы поместите в сегмент 5 строк, неиспользуемые иден- тификаторы будут занимать только 11 байт памяти. Если загруженный сегмент содержит 11 неиспользуемых строк,объем задействованной памяти будет существенно больше.

При задании уникального идентификатора строки вы можете ис- пользовать целое значение или алфавитно-цифровой идентификатор (#define в Си или С++ или описание константы в Паскале), заменяю- щий это целое значение. Если вы для облегчения восприятия иденти- фикаторов выбираете алфавитно-цифровые идентификаторы, нужно пом- нить о том, что вам возможно потребуется сохранить идентификаторы в файле идентификаторов (файл заголовка в Си и С++ либо модуль или включаемый файл в Паскале). Перед добавлением идентификаторов в строковым редакторе убедитесь, что эти файлы существуют.

Теперь вы имеете некоторое представление о том, как Windows работает со строковыми ресурсами, как задать уникальный идентифи- катор строки, и как ввести в строковую таблицу другую строку.

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz