Выбивает ошибку:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка 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 для серьёзных проектов.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей