Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Создание окна


Автор: Stay 27.9.2009, 13:52
Код

#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 WndClass;
    memset(&WndClass,0,sizeof(WNDCLASS));
    
    WndClass.style            = CS_HREDRAW | CS_VREDRAW;
    WndClass.lpfnWndProc    = WndProc;
    WndClass.hInstance        = hInstance;
    WndClass.hbrBackground    = (HBRUSH)GetStockObject(WHITE_BRUSH);
    WndClass.lpszClassName    = "Lab";
    RegisterClass(&WndClass);
    
    hwnd = CreateWindow("Lab","OpenGL", WS_OVERLAPPEDWINDOW,
                        100,100,500,500, NULL, NULL, hInstance, NULL);

    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
    switch (Message){
    case WM_DESTROY: 
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd, Message, wparam, lparam);
    }
    return 0;
}


c:\documents and settings\hysteria\мои документы\visual studio 2008\projects\lab__001\lab__001\lab_001.cpp(20) : error C2440: '=' : cannot convert from 'const char [4]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\hysteria\мои документы\visual studio 2008\projects\lab__001\lab__001\lab_001.cpp(24) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [4]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

В выделенных функциях жирным - ошибка. Помогите найти решение. Заранее спасибо. 

Автор: ИванМ 27.9.2009, 13:54
Надо либо использовать unicode, либо отключить его в настройках проекта

Автор: Stay 27.9.2009, 14:00
Не подскажите как использовать Unicode? может есть ссылка на статью?

Автор: ИванМ 27.9.2009, 14:03
в вашем случае просто можно поставить L перед кавычками:

Код

WndClass.lpszClassName    = L"Lab";
hwnd = CreateWindow(L"Lab",L"OpenGL", WS_OVERLAPPEDWINDOW,
                        100,100,500,500, NULL, NULL, hInstance, NULL);


статью не знаю

Автор: Stay 27.9.2009, 14:05
Всё, спасиб, уже нашёл как делать =)

Автор: GremlinProg 27.9.2009, 16:36
http://forum.vingrad.ru/forum/topic-256580/kw-unicode-utf/hl/wcs+mbs/index.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)