windows.h

Стандартная библиотека
языка программирования С

windows.h — Windows-специфичный заголовочный файл языка программирования С, в котором объявляются функции, предоставляющие интерфейс доступа к Windows API[1]. В случае, если в файле используются и другие заголовочные файлы, связанные с Windows API, windows.h должен быть первым[2].

Дочерние заголовочные файлы

[править | править код]
  • excpt.h — обработка исключений
  • stdarg.h — функции с сигнатурами аргументов переменной длины (стандартный заголовочный файл C)
  • windef.h — различные макросы и типы
  • winnt.h — различные макросы и типы для Windows NT
  • basetsd.h — различные типы
  • guiddef.h — тип GUID
  • ctype.h — символьные типы (стандартный заголовочный файл C)
  • string.h — строчные типы и их буферы (стандартный заголовочный файл C)
  • winbase.h — kernel32.dll, advapi32.dll: функции ядра
  • winerror.h — Коды ошибок для Windows
  • wingdi.h — GDI
  • winuser.h — user32.dll
  • winnls.h — локализация
  • wincon.h — консольные службы
  • winver.h — информация о версии
  • winreg.h — реестр Windows
  • winnetwk.h — сетевые службы
  • winsvc.h — диспетчер управления службами
  • imm.hhh — IME (редактор методов ввода)

Дополнительные заголовки

[править | править код]
  • cderr.h — CommDlgExtendedError коды ошибок функций
  • commdlg.h — Common Dialog Boxes
  • dde.h — DDE
  • ddeml.h — библиотека управления DDE
  • dlgs.h — набор констант для Common Dialog Boxes
  • lzexpand.h — алгоритм сжатия LZ77
  • mmsystem.h — Windows Multimedia
  • nb30.h — NetBIOS
  • rpc.h — удалённый вызов процедур
  • shellapi.h — Windows Shell[англ.] API
  • wincrypt.h — криптографическое API
  • winperf.h — измерение производительности
  • winresrc.h — ресурсы
  • winsock.h — Winsock (сокеты Windows), версия 1.1
  • winspool.h — управление очередью печати
  • winbgim.h — стандартная графическая библиотека
  • ole2.h — OLE
  • objbase.h — COM
  • oleauto.h — OLE Automation
  • olectlid.h — различные определения для GUID

Пример использования

[править | править код]

В данном примере рассматривается создание нового окна[3].

#include <windows.h>   LPSTR szClassName = "MyClass"; HINSTANCE hInstance; LRESULT __stdcall MyWndProc(HWND, UINT, WPARAM, LPARAM);   int __stdcall WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow) {     WNDCLASS wnd;     MSG msg;     HWND hwnd;       hInstance = hInst;               wnd.style = CS_HREDRAW | CS_VREDRAW; //объяснение ниже     wnd.lpfnWndProc = MyWndProc;     wnd.cbClsExtra = 0;     wnd.cbWndExtra = 0;     wnd.hInstance = hInstance;     wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION); //иконка по умолчанию     wnd.hCursor = LoadCursor(NULL, IDC_ARROW);   //курсор по умолчанию     wnd.hbrBackground = (HBRUSH)(COLOR_BACKGROUND+1);     wnd.lpszMenuName = NULL;                     //без меню     wnd.lpszClassName = szClassName;       if(!RegisterClass(&wnd))                     //зарегистрировать WNDCLASS     {         MessageBox(NULL, "This Program Requires Windows NT",                           "Error", MB_OK);         return 0;     }       hwnd = CreateWindow(szClassName,                         "Window Title",                         WS_OVERLAPPEDWINDOW, //оформление окна поумолчанию                         CW_USEDEFAULT,                         CW_USEDEFAULT,       //координаты по умолчанию                         CW_USEDEFAULT,                         CW_USEDEFAULT,       //ширина и высота по умолчанию                         NULL,                //без родительского окна                         NULL,                //без меню                         hInstance,                         NULL);               //без параметра     ShowWindow(hwnd, iCmdShow);              //отрисовать окно на экране     UpdateWindow(hwnd);             //окно должно правильно обновляться       while(GetMessage(&msg, NULL, 0, 0))      //цикл сообщений     {         TranslateMessage(&msg);         DispatchMessage(&msg);     }     return msg.wParam; }   LRESULT __stdcall MyWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {     switch(msg)     {         case WM_DESTROY:             PostQuitMessage(0);             return 0;     }     return DefWindowProc(hwnd, msg, wParam, lParam); } 

Примечания

[править | править код]
  1. Richard Raposa. Understanding C++ for MFC. — ISBN 148228068X. Архивировано 30 июня 2022 года.
  2. Charles Petzold. Programming Windows. — 1998. — ISBN 0735646031. Архивировано 30 июня 2022 года.
  3. Module 1. Your First Windows Program — Win32 apps | Microsoft Docs. Дата обращения: 1 июля 2022. Архивировано 1 июля 2022 года.