Программирование на C++ глазами хакера




Код программы - часть 7


Эти две функции с именем LoadString загружают текст из ресурсов строк. Функция — это часть кода, которая имеет имя и может вызываться из дру­гих мест программы. В данном случае выполнится код загрузки ресурса.

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

  • hInstance — указывает на экземпляр нашей программы, потому что нужны ресурсы из нашего проекта.
  • IDS_APP_TITLE — имя ресурса, который надо загрузить. Если вы сейчас дважды щелкните в ресурсах на разделе String Table, то перед вами от­кроется таблица строк, в которой в одной колонке будет имя строки, а во второй текст. Вот именно это имя и нужно указывать в этом параметре.
  • szTitle — переменная, в которую должно поместиться значение. В нача­ле файла у нас объявлено две переменные с именами szTitie и szWindowClass:

    TCHAR szTitie[MAX_LOADSTRING]; // Текст заголовка окна

    TCHAR szWindowClass[MAX_LOADSTRING]; // Имя класса главного окна
    Как мы уже знаем, при объявлении переменных вначале идет тип. В данном случае указан tchar , что означает строку. Далее идет имя пе­ременной. А для строк еще надо указать в квадратных скобках размер (максимальную длину в символах). В качестве размера указано MAX_LOADSTRING. Это константа, которая равна максимальному размеру загружаемых символов. Можно было бы указать в квадратных скобках и реальное число, но если есть возможность, то лучше использовать предо­пределенные константы.

  • MAX_LOADSTRING — последний параметр, который указывает максималь­ное количество загружаемых символов. Тут опять применяется константа, которая является и длиной строк, в которые мы загружаем текст из ре­сурса. Получается, что размер загружаемой строки равен размеру строки в переменной, и мы никогда не сможем загрузить из ресурсов в перемен­ную больше, чем выделено памяти.
  • После этого идет вызов функции MyRegisterClass(hInstance). В ней происходит заполнение структуры WNDCLASSEX. Что такое структура? Это особая пе­ременная, которая хранит в себе набор переменных любого типа. Например, структура может хранить одну переменную с именем Age числового типа и одну строкового — с именем Name. Чтобы прочитать или изменить значение этих переменных, нужно написать Структура.Переменная. Структура — это имя структурной переменной, а переменная — это имя переменной.




    Содержание  Назад  Вперед