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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.72
RAIDER_55
24 / 24 / 5
Регистрация: 04.04.2010
Сообщений: 229
#1

Cannot convert parameter from 'const wchar_t [20]' to 'LPCSTR' - C++

29.06.2010, 07:47. Просмотров 5817. Ответов 1
Метки нет (Все метки)

Взял первый пример из книги и не мого скомпилировать. Пишу в Visual Studio 2008
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <windows.h>
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
///////////////////////////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    HWND hMainWnd;  
    char szClassName[] = "MyClass";
    MSG msg;
    WNDCLASSEX wc;
    
    // Заполняем структуру класса окна
    wc.cbSize        = sizeof(wc);      
    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)GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = szClassName;
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);
 
    // Регистрируем класс окна
    if (!RegisterClassEx(&wc)) {
        MessageBox(NULL,TEXT("Cannot register class"),TEXT("Error"), MB_OK);
        return 0;
    }
 
    // Создаем основное окно приложения
    hMainWnd = CreateWindow(szClassName,L"A Hello Application", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,(HWND)NULL,(HMENU)NULL,(HINSTANCE)hInstance, NULL); // ******
 
    
    if (!hMainWnd) {
        MessageBox(NULL,TEXT("Cannot create main window"),TEXT("Error"), MB_OK);
        return 0;
    }
 
    // Показываем наше окно
    ShowWindow(hMainWnd, nCmdShow); 
//  UpdateWindow(hMainWnd);
 
    // Выполняем цикл обработки сообщений до закрытия приложения
    while (GetMessage(&msg, NULL, 0, 0))  {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return msg.wParam;
}
///////////////////////////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rect;
 
    switch (msg)
    {
    case WM_PAINT:
        hDC = BeginPaint(hWnd, &ps);
 
        GetClientRect(hWnd, &rect);
        DrawText(hDC,TEXT("Hello World!"), -1, &rect,
            DT_SINGLELINE | DT_CENTER | DT_VCENTER );
        
        EndPaint(hWnd, &ps);
        return 0;
 
    case WM_CLOSE:
        DestroyWindow(hWnd);
        return 0;
 
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
 
    default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
    }
 
    return 0;
}
ошибка в выделеной строке:
cannot convert parameter 3 from 'const wchar_t [20]' to 'LPCSTR'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2010, 07:47     Cannot convert parameter from 'const wchar_t [20]' to 'LPCSTR'
Посмотрите здесь:
Cannot convert from 'wchar_t' to 'const wchar_t *' C++
C++ Cannot convert 'wchar_t *' to 'const char *'
C++ Cannot convert 'wchar_t &' to 'const char *'
C++ Error C2664: 'sprintf' : cannot convert parameter 2 from 'float' to 'const char *'
Исправить ошибку cannot convert parameter 1 from 'const char [15]' to 'LPCWSTR' (CopyFile) C++
C++ Почему const wchar_t* воспринимается как wchar_t* ?
C++ Error C2664: невозможно преобразовать из "wchar_t" в "const wchar_t *"
C++ cannot convert parameter 1 from
C++ LPCTSTR - это const wchar_t*?
C++ Преобразование char* в const wchar_t *
C++ Ошибка: cannot convert parameter
Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
29.06.2010, 07:52     Cannot convert parameter from 'const wchar_t [20]' to 'LPCSTR' #2
Вот почитайте:
win api начало

Добавлено через 3 минуты
Товарищи модераторы, чето каждый день, да не по разу этот вопрос задают. Мож его в FAQ какой-нибудь?
Yandex
Объявления
29.06.2010, 07:52     Cannot convert parameter from 'const wchar_t [20]' to 'LPCSTR'
Ответ Создать тему
Опции темы

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