Тоже самое скомпилировал в проекте visual studio, все компилируется и работает без ошибок. Можно ли что-нибудь сделать с первым компилятором, чтобы он так же работал, или хотя бы подскажите как запустить компилятор visual studio из win cmd.
Код: Выделить всё
#include <Windows.h>
#define width 640
#define height 480
LRESULT CALLBACK WindowProc(HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX Ey;
HWND hwnd;
MSG wMsg;
memset(&Ey, 0, sizeof(WNDCLASSEXW));
Ey.cbSize = sizeof(WNDCLASSEX);
Ey.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
Ey.hCursor = LoadCursor(NULL, IDC_ARROW);
Ey.hIcon = LoadIcon(NULL, IDI_APPLICATION);
Ey.hInstance = hInstance;
Ey.lpfnWndProc = WindowProc;
Ey.lpszClassName = "Eye";
RegisterClassEx(&Ey);
hwnd = CreateWindow(Ey.lpszClassName, "Eneky", WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,
(GetSystemMetrics(SM_CXSCREEN) - width) / 2, (GetSystemMetrics(SM_CYSCREEN) - height) / 2, width, height, NULL, NULL, NULL, NULL);
ShowWindow(hwnd, nCmdShow);
while (GetMessage(&wMsg, hwnd, NULL, NULL))
{
TranslateMessage(&wMsg);
DispatchMessage(&wMsg);
}
return wMsg.wParam;
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam)
{
switch (wMsg)
{
case WM_CLOSE:
ExitProcess(0);
break;
default:
return DefWindowProc(hwnd, wMsg, wParam, lParam);
break;
}
}
Писал в cmd :
C:\MinGW\bin\g++ C:\stamor\hih.c -o C:\stamor\hih.exe
Вот что выдает:
C:\stamor\hih.c: In function 'int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)':
C:\stamor\hih.c:28:43: warning: passing NULL to non-pointer argument 3 of 'BOOL
GetMessageA(LPMSG, HWND, UINT, UINT)' [-Wconversion-null]
while (GetMessage(&wMsg, hwnd, NULL, NULL))
^
C:\stamor\hih.c:28:43: warning: passing NULL to non-pointer argument 4 of 'BOOL
GetMessageA(LPMSG, HWND, UINT, UINT)' [-Wconversion-null]
C:\Users\Moryak\AppData\Local\Temp\cce97p6y.o:hih.c:(.text+0x34): undefined refe
rence to `GetStockObject@4'
collect2.exe: error: ld returned 1 exit status