Выбивает ошибку:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2440 =: невозможно преобразовать "const char [9]" в "LPCWSTR" Lab1 c:\users\валера\documents\visual studio 2015\projects\lab1\lab1\hello.cpp 15
#include <windows.h>
LONG WINAPI WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HWND hwnd; // дескриптор окна
MSG msg; // структура сообщения
WNDCLASS w; // структура класса окна
// Регистрация класса окна
memset(&w, 0, sizeof(WNDCLASS));
w.style = CS_HREDRAW | CS_VREDRAW;
w.lpfnWndProc = WndProc; // имя оконной функции
w.hInstance = hInstance;
w.hbrBackground = (HBRUSH)(WHITE_BRUSH);
w.lpszClassName = "My Class";
RegisterClass(&w);
// Создание окна
hwnd = CreateWindow(L"MyClass",L"MyOkno",
WS_OVERLAPPEDWINDOW, 500, 300, 500, 380, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, nCmdShow); // отображение
UpdateWindow(hwnd); // перерисовка
// Цикл обработки сообщений
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
Подскажите пожалуйста
Оберните все строки, передаваемые в WinAPI-функции, в TEXT(...)
. Пример:
w.lpszClassName = TEXT("My Class");
hwnd = CreateWindow(TEXT("MyClass"), TEXT("MyOkno"), /* ... */
Тогда вам не придётся разбираться ни с опцией проекта Configuration Properities -> General -> Charater Set, ни с A
/W
вариантами функций, ни с префиксом L
для строк.
К слову, в вашем случае настройка Charater Set была выставлена в Use Multi-Byte Character Set
(поэтому варианты функций и структур по умолчанию и ожидали LPCWSTR), но в поле w.lpszClassName
вы пытались записать (сильно упрощая) ASCII-строку (забыли добавить префикс L
к "My Class"
).
Это распространённая ошибка с WINAPI.
LPCWSTR - LONG POINTER CONST (наверное) WSTRING(WCHAR*)
Варианты решения:
Использовать wstring s = L"uu";
. Но тогда в cout
уже s
не передать(можно но оч сложно).
добавить буковку A
:
WNDCLASSA w;
RegisterClassA(&w);
и можно использовать обычный string
wstring
и string
. Написать функции оператора <<
для wstring
и т. д.2 если хочется сразу. 1 если хочется сразу и весь функционал с юникодом. 3 для серьёзных проектов.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Начал недавно учиться программировать на c++ при выборе функции enter() во второй раз, моя программа выдаёт ошибку vector subscript out of range
В среде MVS2015 следующий код и вообще любой подобный:
Не могу понять причину, почему при делении вещественных чисел результат сам по себе округляется до 5 знаков после запятой
Как передать дату из QCalendarWidget в QDateEdit который находится на отдельном окне