WinAPI: справочник программиста
WinAPI (Windows API) - это набор инструментов и функций, предоставляемых операционной системой Windows, для разработки приложений под Windows. WinAPI включает в себя множество библиотек, которые содержат функции и структуры данных для работы с графическим интерфейсом, файловыми и сетевыми операциями, управления процессами и т.д.
Пример кода на WinAPI:
#include
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// Регистрация класса окна
WNDCLASS wc = {};
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(nullptr, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = L"MyWindowClass";
RegisterClass(&wc);
// Создание окна
HWND hWnd = CreateWindow(
L"MyWindowClass",
L"WinAPI Example",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
640, 480,
nullptr,
nullptr,
hInstance,
nullptr
);
if (!hWnd) {
return -1;
}
// Отображение окна
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
// Цикл сообщений
MSG msg = {};
while (GetMessage(&msg, nullptr, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
// Обработчик сообщений окна
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Код создает окно с заголовком "WinAPI Example" и размерами 640x480 пикселей. Приложение при вызове функции WinMain регистрирует класс окна и создает экземпляр окна. Затем приложение запускает цикл обработки сообщений нашего окна. Функция WndProc обрабатывает эти сообщения. В этом примере WndProc обрабатывает только WM_DESTROY и закрывает приложение при нажатии на крестик в правом верхнем углу окна.
Таким образом, WinAPI предоставляет разработчикам полный доступ к функциональности операционной системы Windows, что позволяет создавать приложения, полностью интегрированные с операционной системой. Однако использование WinAPI требует от разработчиков знания низкоуровневых концепций и архитектуры операционной системы.