


Подскажите нормальный,компилятор для приложений виндовс,
был дев ++,он консоль програмирует хорошо,а с приложениями виндовс чтото глючит падло,например ищет какието ошибки которых нет,например вот в такой программе
которая вообще 100% рабочая,ему чтото не нравится в строке
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
изменяю её на строку wc.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
все работает,но опятьже с марокой,вместе с окном виндовс появляется окно консоли...
// Hello1.cpp
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
///////////////////////////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HWND hMainWnd;
char szClassName[] = "MyClass";
MSG msg;
WNDCLASSEX wc;
// Заполняем структуру класса окна
wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
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)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
// Регистрируем класс окна
if (!RegisterClassEx(&wc)) {
MessageBox(NULL, "Cannot register class", "Error", MB_OK);
return 0;
}
// Создаем основное окно приложения
hMainWnd = CreateWindow(
szClassName, "A Hello1 Application", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
(HWND)NULL, (HMENU)NULL,
(HINSTANCE)hInstance, NULL
);
if (!hMainWnd) {
MessageBox(NULL, "Cannot create main window", "Error", MB_OK);
return 0;
}
// Показываем наше окно
ShowWindow(hMainWnd, nCmdShow);
//UpdateWindow(hMainWnd);
// Выполняем цикл обработки сообщений до закрытия приложения
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
///////////////////////////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rect;
switch (msg)
{
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rect);
DrawText(hDC, "Hello, World!", -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER );
EndPaint(hWnd, &ps);
return 0;
case WM_CLOSE:
DestroyWindow(hWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}
на Borland C++ все работает нормально,но почемуто когда переношу экзешник на длругой комп,он там не пашет,чегото не находит там..
скачал визуал..он слишком сложный нихрена не разобраться вообще,мне прибамбасы типа супер отладки там всякие не нужны,нужно чтоб компилировал исходник без проблем,и все...может дев с++ настроить надо ,в принципе он меня устраивал по консоли,может както решаются описанные выше проблеммы с ним?постучите в агент,плиз,люди добрые,помогите разобраться..
Обсуждали тут уже этот момент, вот решение:

то что на твой взгляд должно работать хорошо, вовсе не означает, что так оно и будет.