I'm starting in the C language and would like to know what the "Windows.h" library matches ?! she's responsible for what ?! What kind of functions does it allow me?!
I'm starting in the C language and would like to know what the "Windows.h" library matches ?! she's responsible for what ?! What kind of functions does it allow me?!
Adding the DBX8 response, as windows.h
is specific to Windows, you should take special care when developing code that you want to reuse on other systems later.
For example, when you do the include:
#include <Windows.h>
You limit your code to Windows.
But with the following code, you address this question:
#ifdef _WIN32
// O #ifdef acima garante que o sistema é Windows pois
// o compilador possui _WIN32 definido para os sistemas Windows,
// mas não em outros sistemas.
#include <Windows.h>
#else // ou #elif TESTE_DO_SISTEMA
// #includes do outro sistemas alvo.
#include <gtk/gtk.h>
#endif
And of course, the implementation of the code will be different for each system. Even if your goal is not to support other systems, it is good to add at least the following:
#ifdef _WIN32
#include <Windows.h>
// Outros includes
#else
// Dá mensagem de erro informando que o sistemas não é suportado.
#error "Sistema nao suportado."
#endif
windows.h
contains declarations for all functions of the Windows API , all common macros used by Windows programmers , and all data types used by the various functions and subsystems.
Enables you to do things like:
See this índice da API do Windows
( ᵉᶰ ), this should be useful to read.
Simple example, a window:
#include <windows.h>
const char g_szClassName[] = "ClassedaJanela";
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"Simple Window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);
if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// Step 3: The Message Loop
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}