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



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


Рассмотрим подробнее некоторые части представленного кода. Программа начинает выполнение с функции _tWinMain (листинг 1.2).

Рис. 1.12. Программа ctest среди процессов

Листинг 1.2. Стартовая функция

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { // Дальше идет объявление двух переменных MSG msg; HACCEL hAccelTable;

// Инициализация строковых переменных LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hlnstance, IDC_CTEST, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Выполнение инициализации приложения if (!InitInstance (hInstance, nCmdShow)) { return FALSE; } hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_CTEST); // Главный цикл обработки сообщений Windows while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return (int) msg.wParam; }

Мы уже много раз использовали слово "функция", но не дали ей определение. Если у вас есть опыт программирования в C++, то вы должны быть знакомы с этим понятием. Некоторые вещи выходят за рамки данной книги, и я их буду опускать. Более подробную информации о языке C++ вы можете узнать в специализированной литературе. И все же мы рассмотрим максимальное количество информации, необходимой для понимания примеров.

Все функции в C++ объявляются следующим образом:

Тип Имя (Параметры) { }

  • Тип — тип возвращаемого значения. Если используется int, это указывает на число целого типа.
  • Имя — может быть любым, но для главной функции, с которой начинается выполнение программы, оно предопределено.
  • Параметры — переменные и различные значения, которые передаются в функцию для использования внутри нее.
  • У нашей главной функции после возвращаемого типа стоит ключевое слово APIENTRY, которое указывает на точку входа программы.

    Теперь посмотрите на листинг 1.1. Здесь я расставил комментарии, чтобы вы понимали, что происходит. Как мы уже знаем, комментарии начинаются с двойной косой черты (//). Текст, который стоит после этих черточек, не влияет на работу программы, а только поясняет код.




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