Форум программистов, компьютерный форум CyberForum.ru

Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" - C++

Восстановить пароль Регистрация
 
Справлюсь
 Аватар для Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 203
12.08.2014, 16:41     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" #1
почему выдаёт ошибку?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int RegClass(WNDPROC Proc,LPCTSTR szName,UINT brBackground){
    WNDCLASSEX wc;
    wc.style=wc.cbClsExtra=wc.cbWndExtra=0;
    wc.lpfnWndProc=Proc;
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.hInstance=hInst;
    wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wc.hCursor=LoadCursor(NULL, IDI_ARROW);
    wc.hbrBackground=(HBRUSH)(brBackground+1);
    wc.lpszMenuName=NULL;
    wc.lpszClassName=szName;
    return(RegisterClass(&wc));
}
такую:...(79): error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
(строка 79 это стока 12)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2014, 16:41     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
Посмотрите здесь:

Ошибка 6 error C2664: strtok: невозможно преобразовать параметр 1 из "const char *" в "char *" C++
невозможно преобразовать параметр 1 из "const char [8]" в "LPCWSTR" C++
Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" C++
error C2440: return: невозможно преобразовать "const char *" в "const char (&)[6]" C++
error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 2 из "long" в "LPCTSTR" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
12.08.2014, 16:45     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
...
const WNDCLASSEX wc;
...
или
return(RegisterClass((const WNDCLASSW *)&wc));
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
12.08.2014, 16:49     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" #3
Цитата Сообщение от Справлюсь Посмотреть сообщение
WNDCLASSEX wc;
C
1
const WNDCLASSEX wc;
http://vsokovikov.narod.ru/New_MSDN_...isterclass.htm

Добавлено через 44 секунды
и юникоде в свойствах убери
Справлюсь
 Аватар для Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 203
12.08.2014, 17:08  [ТС]     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" #4
спасибо

Добавлено через 15 минут
ssXXss, все равно ошибка (79): error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "const WNDCLASSW *" в "const WNDCLASSW *"
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
12.08.2014, 17:16     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" #5
C++
1
2
3
4
5
6
7
8
9
ATOM RegisterClass(      
    CONST WNDCLASS* lpWndClass
);
// а тебя 
int RegClass(WNDPROC Proc,LPCTSTR szName,UINT brBackground)
{
 ...
 return RegisterClass();
}
посмотри пример из msdn
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
12.08.2014, 17:21     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вообще то для структуры WNDCLASSEX существует функция RegisterClassEx, и константность тут не при чём.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2014, 17:25     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
Еще ссылки по теме:

error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *" C++
Error C2664: Client::First: невозможно преобразовать параметр 1 из "std::queue<_Ty>" в "std::queue<_Ty> &" C++
C++ Невозможно преобразовать параметр 2 из "char" в "const char *"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
12.08.2014, 17:25     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" #7
C++
1
2
3
4
5
6
//*.h вроде windows.h
#ifdef UNICODE
#define WNDCLASS WNDCLASSW 
#else 
#define  WNDCLASS WNDCLASSA
#endif
где то есть такие строки как выше , поэтому можно использовать конкретную реализацию пример:
C++
1
2
3
WNDCLASSA w;
...
RegisterClassA(&w);
Yandex
Объявления
12.08.2014, 17:25     Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
Ответ Создать тему
Опции темы

Текущее время: 21:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru