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

2. Виды работ практики

  1. Изучение предметной области разрабатываемого приложения.

  2. Описание сценария работы приложения. Разработка архитектуры приложения. Описание структуры модулей.

  3. Формирование интерфейса приложения с использованием различных интерфейсных компонент для построения интерфейса программы.

  4. Создание кодов модулей. Тестирование каждого модуля.

  5. Объединение модулей в единую программу (приложение). Отладка приложения. Тестирование приложения.

3. Содержание практики

Темой учебной практики является разработка многофункционального приложения, решающего следующие задачи:

    • сбор сведений о системе;

  • Использование файловой системы и функций символьного ввода/вывода Windows;

  • работа с файлами и каталогами;

  • использование исключений для перехвата ошибок;

  • работа с реестром.

    1. Изучение предметной области разрабатываемого приложения.

Необходимо изучить средства интерфейса прикладного программирования (WinAPI 32) ОС Windows для работы с файлами и каталогами, символьного ввода-вывода, сбора системной информации, работы с реестром. По итогам изученного материала и в соответствии с темой практики сформулировать цели разработки и требования к разрабатываемому программному продукту в форме технического задания.

Ниже описаны некоторые функции WinAPI32 для работы с файлами и каталогами:

1) Для создания новых или открытия уже существующих файлов используется функция createFile, которая имеет следующий прототип:

HANDLE CreateFile(

LPCTSTR lpFileName, // имя файла

DWORD dwDesiredAccess, // способ доступа

DWORD dwShareMode, // режимы совместного использования

LPSECUTITY_ATTRIBUTES IpSecurutyAttributes, // атрибуты защиты

DWORD dwCreationDisposition, // создание или открытие файла

DWORD dwFlagsAndAttributes, // флаги и атрибуты

HANDLE hTemplateFile // файл атрибутов);

2) Для закрытия доступа к файлу используется функция CloseHandle, единственным параметром которой является дескриптор открытого файла.

3) Для физического удаления файла с диска используется функция DeleteFile,

которая имеет следующий прототип:

BOOL DeleteFile(

LPCTSTR IpFiieName // имя файла

);

4) Для записи данных в файл служит функция writeFiie:

BOOL WriteFile(

HANDLE hFile, // дескриптор файла

LPCVOID lpBuffer, // указатель на буфер данных

DWORD nNumberOfBytesToWrite, // количество записываемых байтов

LPDWORD lpNumberOfBytesWritten, // количество записанных байтов

LPOVERLAPPED lpOverlapped // используется при асинхронной записи

);

5) Для чтения данных из файла служит функция ReadFile:

BOOL ReadFile(

HANDLE hFile, // дескриптор файла

LPVOID lpBuffer, // указатель на буфер данных

DWORD nNumberOfBytesToRead, // количество читаемых байтов

LPDWORD lpNumberOfBytesRead, // количество прочитанных байтов

LPOVERLAPPED lpOverlapped // используется при асинхронной записи

);

6) Для копирования файлов используется функция CopyFiie, прототип которой имеет вид:

BOOL CopyFiie(

LPCTSTR IpExistingFileName, // имя существующего файла

LPCTSTR lpNewFileName, // имя нового файла

BOOL bFailIfExists // действия в случае существования файла

);

7) Функция MoveFile, которая служит для перемещения файлов:

BOOL MoveFile(

LPCTSTR IpExistingFiieName, // имя существующего файла

LPCTSTR lpNewFileName // имя нового файла

);

8) Для создания каталога используется функция CreateDirectory, которая

имеет следующий прототип:

BOOL CreateDirectory(

LPCTSTR lpPathName, // имя каталога

LPSECUTITY_ATTRIBUTES IpSecurutyAttributes // атрибуты защиты

);

9) Для создания подкаталогов можно использовать функцию CreateDirectoryEx, которая позволяет наследовать атрибуты другого каталога, который в этом случае называется шаблонным каталогом. В качестве шаблонного каталога можно указать родительский каталог, в котором создается текущий каталог. Функция CreateDirectoryEx имеет следующий прототип:

BOOL CreateDirectoryEx(

LPCTSTR lpTemplateDirectory, // имя шаблонного каталога

LPCTSTR lpNewDirectory, // имя нового каталога

LPSECUTITY_ATTRIBUTES lpSecurutyAttributes // атрибуты зашиты

);

10) Для поиска файлов, находящихся в каталоге, используются функции

FindFirstFile и FindNextFile. Причем функция FindFirstFile находит

первый файл, имя которого удовлетворяет образцу поиска, а функция

FindNextFile находит последующие такие файлы:

HANDLE FindFirstFile(

LPCTSTR lpFileName, // образец имени для поиска

LPWIN32_FIND_DATA lpFindFileData // адрес данных о файле

);

BOOL F indNextFi1е(

HANDLE hFindFile, // дескриптор для поиска файлов

LPWIN32_FIND_DATA lpFindFileData // адрес данных о файле

);

11) Для удаления пустого каталога предназначена функция RemoveDdirectory, которая имеет следующий прототип:

BOOL RemoveDirectory (

LPCTSTR lpPathName // имя каталога

);

12) Определить имя текущего каталога можно при помощи функции GetCurrentDirectory, которая имеет следующий прототип:

DWORD GetCurrentDirectory(

DWORD nBufferLength, // длина буфера для имени каталога

LPTSTR lpBuffer // адрес буфера для имени каталога

);

13) Для изменения текущего каталога служит функция SetcurrentDirectory, которая имеет следующий прототип:

BOOL SetcurrentDirectory(

LPCTSTR lpPathName // имя нового текущего каталога

);

Функции WinAPI32 для работы с системной информацией и примеры их использования приведены в Приложении 1.