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



Код программы


Теперь познакомимся с кодом программы, который нам сгенерировал мас­тер. Он находится в файле ctest.cpp , и вы можете его увидеть в листинге 1.1. Весь код мы, конечно же, рассматривать не будем. Данная книга не являет­ся самоучителем по языку C++, хотя необходимые вещи рассматриваются очень подробно. Если вы уже знакомы с этим языком программирования, то для вас код файла должен быть понятен. Если нет, то достаточно того, что мы сейчас рассмотрим.

Листинг 1.1. Исходный код файла ctest.cpp
#include "stdafx.h" #include "ctest.h" #define MAX_LOADSTRING 100 // Global Variables: // (Глобальные переменные): HINSTANCE hInst; // current instance // (текущий интерфейс)
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text // (Заголовок окна) TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name // (Имя класса главного окна) // Forward declarations of functions included in this code module: // Описание процедур, используемых в этом модуле: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. //(Поместите свой код здесь) MSG msg; HACCEL hAccelTable;

// Initialize global strings // (Инициализация глобальных строк) LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_CTEST, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance);

// Perform application initialization: // (Инициализация приложения:) if (!InitInstance (hInstance, nCmdShow)) { return FALSE; }

hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_CTEST);

// Main message loop: //(Главный цикл обработки сообщений:) while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } }




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