powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Какой извращенец писал MessageBoxW?
25 сообщений из 196, страница 4 из 8
Какой извращенец писал MessageBoxW?
    #39480140
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Тсс, только про сериализацию не рассказывай!
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39480180
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...С протоколом все понятно - сервер написан на Делфи и передает StringList.
Клиент, работавший на Дельфи, все прекрасно передает и принимает.

К сожалению, на С++ нет аналогичного класса... В C++ Builder StringList есть.
И с Делфи/Билдер идут исходники VCL на паскале. При желании можно изучить устройство StringList.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39480333
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaВ C++ Builder StringList есть.
И с Делфи/Билдер идут исходники VCL на паскале. При желании можно изучить устройство StringList.Именно так!
В Borland/Embarcadero C++ Builder всегда присутствовали все те же классы, что и в Borland/Embarcadero Delphi, причем, C++ Builder использует библиотеки в подавляющем большинстве написанные на Delphi.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39480962
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaSergey_rbпропущено...
С протоколом все понятно - сервер написан на Делфи и передает StringList.
Клиент, работавший на Дельфи, все прекрасно передает и принимает.

К сожалению, на С++ нет аналогичного класса... В C++ Builder StringList есть.
И с Делфи/Билдер идут исходники VCL на паскале. При желании можно изучить устройство StringList.

Я на С++ пишу не от хорошей жизни, а потому, что WinCE 7 перестала поддерживать VCL.

Так то Дельфи нервно курит...
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485644
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос - как перевести кодировку Win-1252 в Win-1251?
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485665
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbВопрос - как перевести кодировку Win-1252 в Win-1251?
Никак. Это кодировка для англоязычных стран.
https://en.wikipedia.org/wiki/Windows-1252 Windows-1252 or CP-1252 is a 1 byte character encoding of the Latin alphabet, used by default in the legacy components[clarification needed] of Microsoft Windows in English and some other Western languages.
Английская часть совпадает у обоих кодировок, а русского в 1252 нет.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485676
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дельфи переводит, значит возможность есть.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485679
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbДельфи переводит, значит возможность есть.
Тогда скорее всего не переводит, т.е. просто делается предположение: "считаем эту кодировку 1251" и дальше работа как-будто это 1251.
Явно кодировка обычно никак не указывается, это просто массив байт и договоренность между писателем и читателем как этот массив трактовать.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485690
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinCE 5.0 имеет кодировку 1251 и на ней функция MultiByteToWideChar работает корректно.
но WinCE 6.0 имеет кодировку 1252 и поэтому сообщения в MessageBox выводится абракадабра.

Я вижу 2 варианта - поменять кодировку текста или программно поменять кодовую страницу WinCE 6.0
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485695
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3-й вариант - перегнать в UTF-8 а потом в 1251
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485696
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbЯ вижу 2 варианта - поменять кодировку текста или программно поменять кодовую страницу
WinCE 6.0

А явно указать кодировку 1251 при вызове MultiByteToWideChar() вместо ACP_ANSI тебе мешает
что?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485699
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSergey_rbЯ вижу 2 варианта - поменять кодировку текста или программно поменять кодовую страницу
WinCE 6.0

А явно указать кодировку 1251 при вызове MultiByteToWideChar() вместо ACP_ANSI тебе мешает
что?


Ни что не мешает, но не работает.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485710
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbно WinCE 6.0 имеет кодировку 1252 и поэтому сообщения в MessageBox выводится абракадабра.
Он в принципе русский понимает без юникода? Если так написать то что будет?
Код: plaintext
1.
MessageBoxA("Привет")
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485725
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbНи что не мешает, но не работает.

Чем аргументирует? "Invalid user, replace it and strike any key"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485735
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSergey_rbНи что не мешает, но не работает.

Чем аргументирует? "Invalid user, replace it and strike any key"?


Просто выводит пустое сообщение и это понятно, т.к. коды символов не совпадают.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485737
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbно WinCE 6.0 имеет кодировку 1252 и поэтому сообщения в MessageBox выводится абракадабра.
Он в принципе русский понимает без юникода? Если так написать то что будет?
Код: plaintext
1.
MessageBoxA("Привет")



Сам по себе русский язык поддерживатеся.

Код: plaintext
1.
MessageBoxW (L"Привет")



Выводит сообщение корректно.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485740
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbПросто выводит пустое сообщение и это понятно, т.к. коды символов не совпадают.

Нет, это потому, что ты так и не научился проверять возвращаемое функциями значение. В морг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485744
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Он в принципе русский понимает без юникода? Если так написать то что будет?
Код: plaintext
1.
MessageBoxA("Привет")



Сам по себе русский язык поддерживатеся.

Код: plaintext
1.
MessageBoxW (L"Привет")



Выводит сообщение корректно.
Ты разницу понимаешь между A и W ? Я про А спрашивал.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485753
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbВыводит сообщение корректно.
Сделай свою функцию перекодировки из 1251 в юникод и ей пользуйся.
Это массив с таблицей перекодировки wchar_t recode[256] плюс несложная функция посимвольной конвертации.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485760
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbВыводит сообщение корректно.
Сделай свою функцию перекодировки из 1251 в юникод и ей пользуйся.
Это массив с таблицей перекодировки wchar_t recode[256] плюс несложная функция посимвольной конвертации.

Хорошо тому , у кого есть отладчик, а если вместо отладчика MessageBox с абракадаброй вместо русских букв, то задача становится не такой простой.

Неужели никто не написал такой функции на с++?
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485761
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbпропущено...


Сам по себе русский язык поддерживатеся.

Код: plaintext
1.
MessageBoxW (L"Привет")



Выводит сообщение корректно.
Ты разницу понимаешь между A и W ? Я про А спрашивал.

A не работает, т.к. проект в Unicode.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485774
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Сделай свою функцию перекодировки из 1251 в юникод и ей пользуйся.
Это массив с таблицей перекодировки wchar_t recode[256] плюс несложная функция посимвольной конвертации.

Хорошо тому , у кого есть отладчик, а если вместо отладчика MessageBox с абракадаброй вместо русских букв, то задача становится не такой простой.

Неужели никто не написал такой функции на с++?
Ты это на компе пиши, а не на своих девайсах. Там делов на полчаса-час: заполнить массив char значениями 1...255, отконвертировать в wchar_t с помощью MultiByteToWideChar , вывести в консоль что получилось и скопипастить в код в виде
Код: plaintext
1.
2.
3.
4.
5.
wchar_t table1251[256] = {0, ....};

wchar_t convert1251(unsigned char v) {
   return table1251[v];
}


дальше берешь по одному символу в 1251 и конвертируешь с помощью convert1251().
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485777
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Ты разницу понимаешь между A и W ? Я про А спрашивал.

A не работает, т.к. проект в Unicode.
Забей. Может потом когда-нибудь поймешь. Делай свою таблицу, как я выше написал, думаю осилишь и все у тебя заработает.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485779
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbпропущено...


Хорошо тому , у кого есть отладчик, а если вместо отладчика MessageBox с абракадаброй вместо русских букв, то задача становится не такой простой.

Неужели никто не написал такой функции на с++?
Ты это на компе пиши , а не на своих девайсах. Там делов на полчаса-час: заполнить массив char значениями 1...255, отконвертировать в wchar_t с помощью MultiByteToWideChar , вывести в консоль что получилось и скопипастить в код в виде
Код: plaintext
1.
2.
3.
4.
5.
wchar_t table1251[256] = {0, ....};

wchar_t convert1251(unsigned char v) {
   return table1251[v];
}


дальше берешь по одному символу в 1251 и конвертируешь с помощью convert1251().

Я и пишу на компе, но запустить на нем не могу.
...
Рейтинг: 0 / 0
Какой извращенец писал MessageBoxW?
    #39485788
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbЯ и пишу на компе, но запустить на нем не могу.
И что мешает создать отдельный проект консольного приложения?
...
Рейтинг: 0 / 0
25 сообщений из 196, страница 4 из 8
Форумы / C++ [игнор отключен] [закрыт для гостей] / Какой извращенец писал MessageBoxW?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]