Нажмите CTRL-D чтобы добавить нас в закладки
HackZone.RU - c++: имя окна на китайском, вместо английского
Войти / Регистрация / Участники
Определение даты выпуска iPhone по серийному номеру
-
Поиск по сайту
Форумы



Реклама

Программирование / C/C++/VC++ RSS подписка на сообщения с форума Subscribe


Новая тема Наиболее обсуждаемые темы Наиболее посещаемые темы
Поиск 
Период
Перейти

Просмотров - 2464
c++: имя окна на китайском, вместо английского
Добавить этот топик в закладки »
RSS-лента ответов »Subscribe
Actor




Advanced Member
# | Сообщение добавлено 28.09.2010 17:26:20
Отредактировано 28.09.2010 18:22:07 by Actor
имеется следующий код:
C++

#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
                                         HINSTANCE hPrevInstance,
                                         LPSTR lpCmdLine,
                                         int nCmdShow)
{
        char cname[] = "Class";
        char title[] = "Simple Window Application";
        MSG msg;
        //structure for registration window class
        WNDCLASS wc;
        wc.style = 0;
        wc.lpfnWndProc = (WNDPROC)WndProc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = hInstance;
        wc.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_APPLICATION);
        wc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
        wc.lpszMenuName = 0;
        wc.lpszClassName = cname;
        //class registration
        if(!RegisterClass(&wc)) return 0;
        //create window
        HWND hWnd = CreateWindow(
                (LPCWSTR)cname,
                (LPCWSTR)title,
                WS_OVERLAPPEDWINDOW,
                0,
                0,
                500,
                300,
                NULL,
                NULL,
                hInstance,
                NULL);
        //check, if window is created
        if(!hWnd) return 0;
        //show window
        ShowWindow(hWnd, nCmdShow);
        //reload window content
        UpdateWindow(hWnd);
        //circle of operating messages
        while (GetMessage(&msg, NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return 0;
};
 
LRESULT CALLBACK WndProc(HWND hWnd,
                                                 UINT message,
                                                 WPARAM wParam,
                                                 LPARAM lParam)
{
        switch(message)
        {
        case WM_CREATE:
                break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        case WM_PAINT:
                break;
        default:
                return DefWindowProc(hWnd, message, wParam, lParam);
        }
        return 0;
}
 

работаю на visual studio 2008 prof edition под win7. но в результате получаю имя окна на китайском, а точнее вот это: ссылка Ваши предложения по исправлению проблемы

может ли это быть связано с преобразованием chаr к LPCWSTR?
Сказать спасибо Ответить Цитировать

_ruzmaz_


Gold Member
# | Сообщение добавлено 28.09.2010 18:49:47
это видимо связано с тем что title - это у тебя ansi строка, а CreateWindow (если не менять свойства проекта например) это CreateWindowW (определено через #define), т.е. требует utf-16 строк
поэтому либо используй MultiByteToWideChar для title, либо используй CreateWindowA
Сказать спасибо Ответить Цитировать

Actor




Advanced Member
# | Сообщение добавлено 28.09.2010 20:41:27
предположение _ruzmaz_ по поводу ansi title было верно. наиболее простым решением оказалось(и получилось) заменить
C++
char cname[] = "Class";
char title[] = "Simple Window Application";
на
C++
wchar_t cname[] = L"Class";
wchar_t title[] = L"Simple Window Application";
Сказать спасибо Ответить Цитировать


Только зарегистрированные пользователи могут оставлять сообщения в форуме

Зарегистрироваться *** Авторизоваться

 Последние новости и статьи  Последние сообщения с форумов
  • WhatsApp уверяет пользователей, что Facebook не имеет доступа к и...
  • Однострочная команда в Windows 10 может повредить жесткий диск с ...
  • Кардерский форум Joker’s Stash объявил о закрытии
  • Релиз ядра Linux 5.9
  • Российские хакеры вооружились уязвимостью Zerologon
  • Тысячи приватных звонков американских заключенных оказались в отк...
  • Шифровальщик атаковал немецкую компанию Software AG
  • Злоумышленники используют службу Windows Error Reporting для бесф...
  • Microsoft предупредила о вымогателях, которые выдают себя за МВД ...
  • Инфостилер Valak ворует информацию из почтовых систем Microsoft E...

    Все новости... Все статьи... Прислать новость RSS
  • Взлом и безопасность / Программы » Услуги Хакера @ Заказать взлом @ Нужен хакер@Alex89618506139
  • Взлом и безопасность / ICQ,AIM,YAHOO,QIP » Услуги Хакера @ Заказать взлом @ Нужен хакер@Alex89618506139
  • Взлом и безопасность / Разное » Re: Помощь в скачивании платного файла
  • Взлом и безопасность / Разное » Помощь в скачивании платного файла
  • Разное / Куплю, приму в дар » куплю | ваш аккаунта | получение нового | описание внутри
  • Разное / Предложения работы » Специалиста
  • Downloads / Другое » Re: Нужна база емайл адресов юр. лиц
  • Downloads / Другое » Нужна база емайл адресов юр. лиц
  • Разное / Предложения работы » Нужен взлом mail и gmail почты
  • Взлом и безопасность / Разное » Re: Нужна помощь в скачивании файла

    Все форумы... RSS


  • Разместить рекламу
    © HackZone Ltd. 1996-2020. Все права зарегистрированы.
    Перепечатка материалов без согласования и указания источника будет преследоваться по Закону

    О проекте | История проекта | Размещение рекламы | Обратная связь | Правила поведения на портале
    contador de visitas счетчик посещений

    #{title}

    #{text}

    x

    #{title}

    #{text}