Разбираиу щас програмку Хулоу Ворлд ,вот код
#include <windows.h>
LRESULT CALLBACK HelloWorldWndProc (HWND, UINT, UINT, LONG);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdParam, int nCmdShow)
{
HWND hWnd;
WNDCLASS WndClass;
MSG Msg;
char szClassName[] = "Hello World";
WndClass.style = CS_HREDRAW | CS_VREDRAW;
WndClass.lpfnWndProc = HelloWorldWndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = hInstance;
WndClass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor (NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName = NULL;
WndClass.lpszClassName = szClassName;
if (!RegisterClass(&WndClass))
{
MessageBox (NULL, "cannot register class", "error", MB_OK);
return 0;
}
hWnd = CreateWindow (szClassName, "program No 1",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL,
hInstance, NULL);
if (!hWnd)
{
MessageBox (NULL, "cannot create window", "error", MB_OK);
return 0;
}
ShowWindow (hWnd, nCmdShow);
UpdateWindow (hWnd);
while (GetMessage (&Msg, NULL, 0, 0))
{
TranslateMessage (&Msg);
DispatchMessage (&Msg);
}
return Msg.wParam;
}
LRESULT CALLBACK HelloWorldWndProc (HWND hWnd, UINT Message,
UINT wParam, long lParam)
{
HDC hDC;
PAINTSTRUCT PaintStruct;
RECT Rect;
switch (Message)
{
case WM_PAINT:
hDC = BeginPaint (hWnd, &PaintStruct);
GetClientRect (hWnd, &Rect);
DrawText (hDC, "HelloWorld!", -1, &Rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint (hWnd, &PaintStruct);
return 0;
}
return DefWindowProc (hWnd, Message, wParam, lParam);
}
Компилятор у меня Microsoft Visual Studio. Вобщем решил поэксперементировать вот с етой строкой
,поменял значение IDC_ARROW ,на IDC_CROSS ,ну вобщем откомпилировал ,ошибок нет !!! запускаиу программу ,а компилятор мне выдает вот такое сообщение:WndClass.hCursor = LoadCursor (NULL, IDC_ARROW);
.--------------------Configuration: HelloWinWorld - Win32 Debug--------------------
Linking...
LINK : fatal error LNK1168: cannot open Debug/HelloWinWorld.exe for writing
Error executing link.exe.
HelloWinWorld.exe - 1 error(s), 0 warning(s)
Сначала подумал ,что значение неправельное записал ,записал обратно IDC_ARROW , откомплировал ,ошибок нет .Как тока решил перепроверить прогу ,мне выдается такое же сообщение .ОТ ЧЕГО ЕТОТ ДРЭК???????????????????????????????????????????????????????????????????????????????????????????????????
еще пара гениальных вопросов:
1) что означает NULL ??? ето типо нулевое значение ???
2)
HWND hWnd;
WNDCLASS WndClass;
MSG Msg;
Зачем писать сначала заглавными буквами ,а потом строчными ???
сэнкс