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

4.4 Реализация алгоритма сохранения данных в файл

OPENFILENAME fn; // структура диалогового окна

TCHAR szFile[260]; // переменная для хранения имени выбранного файла

// инициализация полей струтктуры OPENFILENAME

ZeroMemory(&fn, sizeof(fn));

fn.lStructSize = sizeof(fn);

fn.hwndOwner = hdlg;

fn.lpstrFile = szFile;

fn.lpstrFile[0] = '\0';

fn.nMaxFile = sizeof(szFile);

fn.lpstrFilter = L"All\0*.*\0Text\0*.TXT\0";

fn.nFilterIndex = 1;

fn.lpstrFileTitle = NULL;

fn.nMaxFileTitle = 0;

fn.lpstrInitialDir = NULL;

fn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

//проверка на создан ли диалог открытия файла

if (GetSaveFileName(&fn)==TRUE)

{

GetDlgItemTextW(hdlg, IDC_EDIT_BMP, (LPWSTR)str, 2*SendDlgItemMessage(hdlg, IDC_EDIT_BMP, WM_GETTEXTLENGTH, 0, 0));

wcscat(text,str); wcscat(text,rn);

ZeroMemory(&str, sizeof(str));

GetDlgItemTextW(hdlg, IDC_EDIT_DAMP, (LPWSTR)str, 2*SendDlgItemMessage(hdlg, IDC_EDIT_DAMP, WM_GETTEXTLENGTH, 0, 0));

wcscat(text,str); wcscat(text,rn);

ZeroMemory(&str, sizeof(str));

GetDlgItemTextW(hdlg, IDC_BMP, (LPWSTR)str, 2*SendDlgItemMessage(hdlg, IDC_BMP, WM_GETTEXTLENGTH, 0, 0));

wcscat(text,str); wcscat(text,rn);

//создание файла для записи

HANDLE hFile = CreateFile(fn.lpstrFile, GENERIC_READ | GENERIC_WRITE,

0, NULL, CREATE_ALWAYS, 0, NULL)

//запись данных в файл

WriteFile(hFile, text, sizeof(text), &dwCount, NULL);

//освобождение handle файла

CloseHandle(hFile);

5 Тестирование программного обеспечения

Тестирование разработанной динамической библиотеки выполнялось при помощи программы клиента, разработанной в среде разработки – Microsoft Visual Studio 2010 с интерфейсом программирования – Win32 API , а также в среде 32-разрядной операционной системы Windows Seven Ultimate при использовании процессора AMD Turion(tm)X2 Dual-Core Mobile MR-76 2.30 GHz (ОЗУ 3 Гб).

5.1 Сравнение выводимых данных

Дамп bmp-файла, отображаемый при помощи команды Lister в Total Commander приведен на рисунке 5.1

Рисунок 5.1 – Результаты команды Lister в Total Commander

Дамп bmp-файла, отображаемый про помощи функции, экспортируемой из разработанной Dll, приведен на рисунке 5.2

Рисунок 5.2 – Дамп bmp-файла, отображаемый про помощи функции из Dll

Сравнив результаты, полученные при помощи команды Lister в Total Commander и при функции из Dll можно сделать вывод, что отображение дампа производится корректно.

5.2 Тест на корректность работы диалогов

Результат тестирования приложения на предмет корректности открытия файла показан на рисунке 5.3

Рисунок 5.3 – Результат работы приложения при открытий файла

Результат тестирования приложения на предмет сохранения данных в файл показаны на рисунках 5.4, 5.5

Рисунок 5.4 – Результат работы функции сохранения в файл

Рисунок 5.5 – Файл с сохраненными данными

Заключение

Результатом выполнения данного курсового проекта является разработанная динамическая библиотека. Полученная DLL реализует возможность просмотра структуры файла формата bmp, а также может осуществлять просмотр дампа файла и выводит расшифровку полученного дампа. Также имеется возможность сохранить полученные данные в файл.

Разработанная динамическая библиотека может подключаться к любым приложениям, работающими с растрами. А также она будет интересна и рядовым пользователям операционной системы Windows, которые желают узнать больше информаций о интересующем их bmp-файле.