Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
API_LAB.doc
Скачиваний:
2
Добавлен:
06.05.2019
Размер:
485.38 Кб
Скачать

Практична робота №1

Тема: Інтегроване середовище Visual C++ 6.0 і робота з консольними додатками.

Мета: опанувати навичками роботи в середовищі Visual C++ 6.0. навчитись створювати проекти.

Теоретичні відомості:

Створення нового проекту. Для створення нового проекту типу «консольний додаток» виконати такі дії:

  • виконати в рядку меню головного вікна команду File/New...

  • у вікні діалогу New вибрати вкладку Projects:

      • вибрати тип проекту: Win32 Console Application;

      • ввести ім’я проекту в полі Project Name, наприклад, pract1;

      • в полі Location ввести ім’я каталогу (повний шлях до нього) для розміщення майбутніх файлів проекту (якщо вказаний вами каталог відсутній, то він буде створений автоматично); шлях до майбутнього проекту можна вибрати клацнувши кнопку, розташовану праворуч від поля Location

      • клацнути кнопку ОК.

  • Запуститься вбудований майстер додатків: Application Wizard, який відкриє вікно диалогу Win32 Console Application — Step1 of 1 з пропозицією визначитись, який підтип консольного додатку бажаєте створити :

    • виберіть тип: An empty project (порожній проект);

    • і клацніть кнопку Finish.

      • Після цього зявиться вікно:  New Project Information (інформация про новий проект) з специфікаціями проекту і інформацією про каталог, в якому буде розміщений проект, що створюється:

      • клацнути кнопку ОК.

У папці pract1, що створена майстром додатків, - файлы pract1.dsw, pract1.dsp, pract1.opt, pract1.ncb і папка Debug (або Release — в залежності від конфігурації проекту). Короткий опис кожного з файлів:

  • pract1.dsw — файл робочої області проекту, використовується всередині інтегрованого середовища розробки. Він об’єднує всю інформацію про проекти, що входять в дану робочу область.

  • pract1.dsp — проектний файл, використовується для побудови (building) окремого проекту або підпроекту.

  • pract1.opt — файл, що має опції робочої області проекту. Завдяки цьому файлу при кожному відкритті робочої області проекту усі параметри Developer Studio, вибрані під час останнього сеансу роботи з даною робочоюй областю, будуть відновлені.

  • pract1.ncb — службовий файл. Він створюється компілятором і має інформацію, яка використовується в инструменті інтегрованого середовища під назвою ClassView. Панель ClassView знаходиться у вікні Project Workspace і показує усі класи C++, для яких доступні визначення в межах даного проекту, а також усі елементи цих класів. Debug — папка, в яку будуть вміщуватися файли, що формуються компілятором і збиральником. З цих файлів нас цікавить лише один — виконуваний файл, що має розширення  *.ехе.

Лістинг програми:

Console

#include <stdio.h>

#include <conio.h>

void main(void)

{

printf("\n Practical work 1 \n");

while(!kbhit());

}

Application

#include<windows.h>

#include<tchar.h>

const wchar_t szTitle[]=_T("ЗПЗС-114 Пр№1 Вариницький С.В.");// Текст строки заголовка

const wchar_t szWindowClass[]=_T("ЗПЗС-114 Пр№1 Вариницький С.В.");// имя класса главного окна

HINSTANCE hInst;// текущий экземпляр

//Создаём прототип функции окна, которая будет определена ниже

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

ATOM MyRegisterClass(HINSTANCE hInstance);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)

{

HWND hWnd;

MSG lpMsg;

if(!MyRegisterClass(hInstance)) //Если не удалось зарегистрировать класс окна - выходим

return 0;

hWnd = CreateWindow(szWindowClass, //Имя программы

szTitle, //Заголовок окна

WS_OVERLAPPEDWINDOW, //Стиль окна - перекрывающееся

100, //положение окна на экране по х

100, //положение по у

300, //ширина

200, //высота

(HWND)NULL, //идентификатор родительского окна

(HMENU)NULL, //идентификатор меню

(HINSTANCE)hInstance, //идентификатор экземпляра программы

(LPVOID) NULL); //отсутствие дополнительных параметров

ShowWindow(hWnd, nCmdShow);//Выводим окно из памяти на экран

UpdateWindow(hWnd);//Обновим содержимое окна

//Цикл обработки сообщений

while(GetMessage(&lpMsg, hWnd, 0, 0)) { //Получаем сообщение из очереди

TranslateMessage(&lpMsg); //Преобразует сообщения клавиш в символы

DispatchMessage(&lpMsg); //Передаёт сообщение соответствующей функции окна

}

return (lpMsg.wParam);

}

ATOM MyRegisterClass(HINSTANCE hInstance)

{

WNDCLASS w; //создаём экземпляр структуры WNDCLASS //И начинаем её заполнять

//w.cbSize = sizeof(WNDCLASS);

w.style = CS_HREDRAW|CS_VREDRAW; //стиль - перерисовываемое по х и по у

w.lpfnWndProc = WndProc; //указатель на функцию окна

w.cbClsExtra = 0;

w.cbWndExtra = 0;

w.hInstance = hInstance; //идентификатор текущего приложения

w.hIcon = 0; //иконки у нас не будет пока

w.hCursor = LoadCursor(NULL, IDC_ARROW); //загружаем курсор

w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //цвет фона окна

w.lpszMenuName = 0; //и меню пока не будет

w.lpszClassName = szWindowClass; //имя программы - объявлено выше

return RegisterClass(&w);

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT messg, //Функция окна

WPARAM wParam, LPARAM lParam)

{

HDC hdc; //создаём контекст устройства

PAINTSTRUCT ps; //создаём экземпляр структуры графического вывода

switch(messg)//Цикл обработки сообщений

{

case WM_PAINT ://сообщение рисования

hdc=BeginPaint(hWnd, &ps);//начинаем рисовать

TextOut(hdc, 80,75, _T("Практична робота №1"), 19);

ValidateRect(hWnd, NULL);//обновляем окно

EndPaint(hWnd, &ps);//заканчиваем рисовать

break;

case WM_DESTROY://сообщение выхода - разрушение окна

PostQuitMessage(0); //Посылаем сообщение выхода с кодом 0 - нормальное завершение

break;

default:

return(DefWindowProc(hWnd, messg, wParam, lParam)); //освобождаем очередь приложения от нераспознаных

}

return 0;

}

Вікна результатів:

Висновки: Я навчився створювати проекти в середовищі Visual C++ 10.0