История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2017-06-11 | 454 |
5.00
из
|
Заказать работу |
Мобильность программ и их независимость от конкретной платформы во многом обеспечивается введением новых стандартных типов данных - определенных на основе простых типов языка программирования Си. Имена стандартных типов данных состоят из символов верхнего регистра.
Ниже приведен список наиболее распространенных типов: симовольных, целых, булевских, указателей и описателей (handles). Символьные, целые и булевские типы соответствуют аналогичным типам большинства диалектов языка Си. Имена типов-указателей содержат префикс "P" или "LP". Описатели имеют отношение к ресурсам, загруженным в память.
Наиболее часто используются следующие типы данных:
· BOOL - булевская переменная (TRUE или FALSE);
· CHAR - 8- разрядный символ;
· DWORD - 32-разрядное беззнаковое целое;
· HANDLE - описатель объекта;
· INT - 32-разрядное целое;
· LPSTR - указатель на строку 8-разрядных символов, заканчивающуюся нулем;
· LPTSTR - LPWSTR в случае Unicode или LPSTR в случае ANSI;
· LPVOID - указатель на любой тип;
· LPWSTR - указатель на строку 16-разрядных (Unicode) символов, заканчивающуюся нулем;
· WCHAR, в случае Unicode или CHAR в случае ANSI;
· WCHAR - 16-разрядный Unicode символ;
· WORD - 16-разрядное беззнаковое целое.
Остальные типы данных будут изучаться по мере необходимости.
Обработка ошибок
Профессиональная разработка программных приложений предполагает включение кода для корректного восстановления после потенциальных ошибок. В случае возникновения ошибки система может справиться с ней самостоятельно, но в экстремальных ситуациях может потребоваться вмешательство пользователя.
Вызываемая Win32-функция может возвратить значение, свидетельствующее об ошибке (например, NULL для функций типа HANDLE или ноль для функций типа BOOL). В таких случаях можно попытаться выявить тип ошибки при помощи функции GetLastError - она возвращает код последней ошибки, который хранится в локальной памяти потока, вызвавшего ошибку. Коды ошибок (а их более 10 тысяч), представляющие собой 32-битные числа, находятся в заголовочном файле WinError.h.
Если приложение содержит функции, к которым обращаются другие программы, то желательно, чтобы эти функции синтезировали код ошибки в случае возникновения ошибочных ситуаций, то есть вели себя подобно функциям Win32 API. Это можно сделать при помощи функции SetLastError.
Для преобразования кода ошибки в ее содержательное описание предназначена Win32-функция FormatMessage.
Прогон программы, синтезирующей информацию об ошибке, которая имитирует отсутствие нужного файла
//Практическая работа № 16
//Группа xxxxxx Терминал N ФИО
#include “windows.h”
#include “stdio.h”
void GetError() {
DWORD dw = GetLastError(); //Получение кода последней ошибки
printf("GetLastError returned %u\n", dw); //Печать кода последней ошибки
}
void SetError() {
DWORD dw = ERROR_FILE_NOT_FOUND;//Выбор кода ошибки
SetLastError (dw);//Установка кода ошибки
}
void main() {
printf("Hello world \n");
SetError();// Вызов установщика кода ошибки
GetError();// вызов Расшифровщика кода ошибки
}
/* При выполнении данной практической работы я освоил
.
*/
Рекомендуется реализовать данную программу и сверить номер выдаваемой ошибки с соответствующим перечнем в MSDN или файле заголовка WinError.h.
Заключение
В данной лекции рассмотрены вопросы, важные с точки зрения практического освоения ОС Windows и разработки Win32-приложений. Основным источником сведений об API системы является справочная система MSDN. Разработчику приложений необходимо владеть средствами разработки и отладки, знать основные типы данных и форматы хранения текстовых строк, а также правильно обрабатывать ошибки. Дополнительным источником сведений о системе являются разнообразные инструментальные средства.
Вопросы:
1.Что такое Win32 API?
(Win32 API предоставляет всеобъемлющий интерфейс, позволяющий выполнить каждое действие несколькими способами и покрывающий все области, с которыми должна работать операционная система.)
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!