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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 203
#1

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

12.08.2014, 16:41. Просмотров 534. Ответов 6
Метки нет (Все метки)

почему выдаёт ошибку?
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 *"
Посмотрите здесь:
error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 2 из "long" в "LPCTSTR" C++
C++ Error C2664: невозможно преобразовать из "wchar_t" в "const wchar_t *"
Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" C++
невозможно преобразовать параметр 1 из "const char [8]" в "LPCWSTR" C++
Исправить ошибку C2664: fcvt: невозможно преобразовать параметр из "int" в "int *" C++
C++ Невозможно преобразовать параметр 2 из "char" в "const char *"
C++ Преобразовать параметр из "WCHAR [260]" в "const char *"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
264 / 186 / 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
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
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
264 / 186 / 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
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 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: Display: невозможно преобразовать параметр 1 из 'int [5]' в 'int" C++
C++ Error C2440: <function-style-cast>: невозможно преобразовать "unsigned int" в "std::bitset<_Bits>"
Error C2440: =: невозможно преобразовать "void *" в "Node *" C++
C++ Error C2440 невозможно преобразовать "void *" в "char *
OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *" C++

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

Или воспользуйтесь поиском по форуму:
ssXXss
264 / 186 / 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 *"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru