Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2011, 14:19   #1
Forward777
Пользователь
 
Регистрация: 22.09.2008
Сообщений: 12
По умолчанию Коварная ошибка C2059

Приветствую, решил потренироваться писать простейшее приложение на C++, написал код по примеру из книги, вот выдаёт ошибку C2059 ссылаясь на строку при вызове функции CreateWindow (строку пометил). На MSDN читал что эта ошибка может возникнуть не в строке на которую ругается компилятор, а на строках выше. Пробовал закомментировать строку на которую ругается компилятор, ошибки нет, хотя вроде вызов функции нормальный.
Код:
#include <windows.h>

#define WINDOW_HEIGHT = 480
#define WINDOW_WIDTH = 640

HWND g_hWnd = NULL;

HRESULT InitWindow(HINSTANCE hInstance, int hShowCmd);
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int hShowCmd) {
	if(FAILED(InitWindow(hInstance, hShowCmd)))
	    return 0;

	MSG msg = {0};
	while(GetMessage(&msg, NULL, 0, 0)) {
	    TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return (int)msg.wParam;
}

HRESULT InitWindow (HINSTANCE hInstance, int hShowCmd) {
	WNDCLASSEX wc;
	wc.cbSize = sizeof(WNDCLASSEX);
    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)(COLOR_WINDOW+1);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = L"SimpleWindowClass";
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

	if(!RegisterClassEx(&wc)) { 
		return E_FAIL;
	}

	g_hWnd = CreateWindow(L"SimpleWindowClass", "SimpleWnd", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hInstance, NULL); // error C2059: синтаксическая ошибка: =

	if(!g_hWnd) {
	    return E_FAIL;
	}

	ShowWindow(g_hWnd, hShowCmd);
	UpdateWindow(g_hWnd);

	return S_OK;
}

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
	switch(message) {
		case WM_QUIT:
			PostQuitMessage(0);
		break;

		default:
			return DefWindowProc(hWnd, message, lParam, wParam);
	}

	return 0;
}
Помогите разобраться, заранее благодарю.
Forward777 вне форума Ответить с цитированием
Старый 21.08.2011, 14:29   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
g_hWnd = CreateWindow(L"SimpleWindowClass", L"SimpleWnd"
если используешь уникод, то перед всеми строковыми литералам ставь символ L.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 21.08.2011, 14:31   #3
Forward777
Пользователь
 
Регистрация: 22.09.2008
Сообщений: 12
По умолчанию

pproger, да ставил, не в этом дело
Forward777 вне форума Ответить с цитированием
Старый 21.08.2011, 14:44   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
#define WINDOW_HEIGHT = 480
#define WINDOW_WIDTH = 640
равно убери
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 21.08.2011, 14:46   #5
Forward777
Пользователь
 
Регистрация: 22.09.2008
Сообщений: 12
По умолчанию

Точно! pproger, спасибо огромное!
Forward777 вне форума Ответить с цитированием
Старый 21.08.2011, 14:47   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

мой вам совет, пишите и описание ошибки, а не только номер.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Ошибка run-time Error 1004 общая ошибка ODBC kaval88 Microsoft Office Excel 0 27.02.2011 20:20
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... infrared Помощь студентам 0 16.04.2009 17:44