Чтение онлайн

на главную - закладки

Жанры

Системное программирование в среде Windows

Харт Джонсон М.

Шрифт:

/* DWORD_PTR (целое без знака, соответствующее точности указателя)

 * используется для целых чисел, преобразуемых в дескрипторы или указатели.

 * Благодаря этому в Win64 не будут выводиться предупреждающие сообщения,

 * касающиеся взаимных преобразований 32-битовых и 64-битовых данных,

 * поскольку в Win64 дескрипторы HANDLE и указатели являются 64-битовыми

 * (см. главу 16). Этот режим активизируется только в том случае,

 *
если определена символическая константа _Wp64.

 */

#if !defined(_Wp64)

#define DWORD_PTR DWORD

#define LONG_PTR LONG

#define INT_PTR INT

#endif 

Envirmnt.h
Программа А.2. Включаемый файл Envirmnt.h 

/* Envirmnt.h — Здесь определяются константы UNICODE и _МТ. */

/* Лучше и проще определить константу UNICODE в проекте. */

/* Используйте команды меню: Project…Settings…C/C++. Затем, перейдя */

/* в окно Project Options, добавьте в нижней части: /D "UNICODE". */

/* Проделайте то же самое для констант _МТ и _STATIC_LIB. */

//#define UNICODE

#undef UNICODE

#ifdef UNICODE

#define _UNICODE

#endif

#ifndef UNICODE

#undef _UNICODE

#endif

//#define _STATICLIB

/* Определите _STATICLIB, если создаете */

/* или компонуете статическую библиотеку. */

#define LANG_DFLT LANG_ENGLISH

#define SUBLANG_DFLT SUBLANG_ENGLISH_US

Support.h
Программа А.З. Включаемый файл Support.h 

/* Support.h */

/* Содержит определения всех символических констант и распространенных служебных функций, используемых в примерах программ. */

/* НЕСМОТРЯ НА ВКЛЮЧЕНИЕ ОПИСАНИЙ КОНСТАНТ UTILITY_EXPORTS И _STATICLIB, ИХ ЛУЧШЕ ОПРЕДЕЛЯТЬ НЕ ЗДЕСЬ, А В ПРОЕКТЕ. */

/* Имя "UTILITY_EXPORTS" генерируется средой разработки Visual Studio, если вы создаете проект DLL с именем "Utility", но его также можно определить в командной строке С. */

// UTILITY_3_0_EXPORTS определяется в проекте UTILITY_3_0.

#if defined(UTILITY_3_0_EXPORTS)

#define LIBSPEC _declspec(dllexport)

#elif defined(__cplusplus)

#define LIBSPEC extern "C" _declspec(dllimport)

#else

#define LIBSPEC _declspec(dllimport)

#endif

#define EMPTY _T("")

#define YES _T("y")

#define NO _T("n")

#define CR 0x0D 

#define LF 0x0A

#define TSIZE sizeof(TCHAR)

/*
Предельные значения и константы. */

#define TYPE_FILE 1 /* Используется в ls, rm, и lsFP. */

#define TYPE_DIR 2

#define TYPE_DOT 3

#define MAX_OPTIONS 20 /* Максимальное количество параметров командной строки.*/

#define MAX_ARG 1000 /* Максимальное количество аргументов командной строки.*/

#define MAX_COMMAND_LINE MAX_PATH+50 /*Максимальный размер командной строки*/

/* Часто используемые функции. */

LIBSPEC BOOL ConsolePrompt(LPCTSTR, LPTSTR, DWORD, BOOL);

LIBSPEC BOOL PrintStrings(HANDLE, ...);

LIBSPEC BOOL PrintMsg(HANDLE, LPCTSTR);

LIBSPEC VOID ReportError(LPCTSTR, DWORD, BOOL);

LIBSPEC VOID ReportException(LPCTSTR, DWORD);

LIBSPEC DWORD Options(int, LPCTSTR *, LPCTSTR, ...);

LIBSPEC LPTSTR SkipArg(LPCTSTR);

LIBSPEC VOID GetArgs(LPCTSTR, int *, LPTSTR *);

/* Набор функций для работы с обобщенными строками в стиле string.h. Создавались по мере необходимости – первоначально была только одна функция! Реализация взята из [27]. */

LIBSPEC LPCTSTR wmemchr(LPCTSTR, TCHAR, DWORD);

#ifdef _UNICODE /* Это объявление уже должно было быть добавлено. */

#define _tstrrchr wcsrchr

#else

#define _tstrrchr strrchr

#endif

#ifdef _UNICODE /* Это объявление уже должно было быть добавлено. */

#define _memtchr wmemchr

#else

#define _memtchr memchr

#endif

/* Функции безопасности. */

LPSECURITY_ATTRIBUTES InitializeUnixSA(DWORD, LPTSTR, LPTSTR, LPDWORD, LPHANDLE);

LPSECURITY_ATTRIBUTES InitializeAccessOnlySA(DWORD, LPTSTR, LPTSTR, LPDWORD, LPHANDLE);

Поделиться:
Популярные книги

Отморозок 3

Поповский Андрей Владимирович
3. Отморозок
Фантастика:
попаданцы
5.00
рейтинг книги
Отморозок 3

Род Корневых будет жить!

Кун Антон
1. Тайны рода
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Род Корневых будет жить!

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Полковник Империи

Ланцов Михаил Алексеевич
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Полковник Империи

Идеальный мир для Лекаря 11

Сапфир Олег
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 11

Последняя Арена 2

Греков Сергей
2. Последняя Арена
Фантастика:
рпг
постапокалипсис
6.00
рейтинг книги
Последняя Арена 2

Скрываясь в тени

Мазуров Дмитрий
2. Теневой путь
Фантастика:
боевая фантастика
7.84
рейтинг книги
Скрываясь в тени

Герцог и я

Куин Джулия
1. Бриджертоны
Любовные романы:
исторические любовные романы
8.92
рейтинг книги
Герцог и я

Владеющий

Злобин Михаил
2. Пророк Дьявола
Фантастика:
фэнтези
8.50
рейтинг книги
Владеющий

Развод с миллиардером

Вильде Арина
1. Золушка и миллиардер
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Развод с миллиардером

Паладин из прошлого тысячелетия

Еслер Андрей
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
6.25
рейтинг книги
Паладин из прошлого тысячелетия

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Бестужев. Служба Государевой Безопасности. Книга вторая

Измайлов Сергей
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая

Орден Багровой бури. Книга 6

Ермоленков Алексей
6. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Орден Багровой бури. Книга 6