Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
и в качестве параметра поставил число вместо строки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:13 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. В каком месте вместо числа ты ожидаешь строку? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:18 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Это какая версия? Я пишу в Embedded C++ для WinCE Получаю такую ошибку автор MessageBoxW( s2, L"SD", MB_OK); error C2664: 'MessageBoxW' : cannot convert parameter 1 from 'char *' to 'const unsigned short *' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:36 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Я так понимаю речь о hWnd (хэндле окна в котором вывести), которого нет в MessageBox() других ЯП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:43 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЭто какая версия? Это WinAPI, оно всегда такое было. Добавь первым параметром хэндл окна своей проги в котором вывести или NULL чтобы отдельным окном. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:46 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЯ пишу в Embedded C++ для WinCE Получаю такую ошибку У функции 4 параметра. Ты забыл указать первый из них. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:47 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbЯ пишу в Embedded C++ для WinCE Получаю такую ошибку У функции 4 параметра. Ты забыл указать первый из них. Это другая функция авторMessageBoxW(NULL, s2, L"SD", MB_OK); Выдает ошибку авторerror C2660: 'MessageBoxW' : function does not take 4 parameters ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:49 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:52 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:55 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЭто другая функция Тогда читай документацию к её параметрам. Это HWND и две строки. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 14:58 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbВыдает ошибку авторerror C2660: 'MessageBoxW' : function does not take 4 parameters Странно. С WinCE никогда не сталкивался, а в обычных виндовсах буква W на конце обозначает что используются юникодные строки. Возможно в WinCE это по другому и там нет MessageBoxW, а твой MessageBoxW какая-то самодельная функция. Поищи у себя в исходниках. По хорошему не надо явно W писать, а задать в свойствах проекта использование юникода и вызывать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:01 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbЭто другая функция Тогда читай документацию к её параметрам. Это HWND и две строки. Это две строки и набор кнопок Вот так работает авторTCHAR tt[] = _T("TEST"); MessageBoxW(tt, L"Внимание!", MB_OK); Как в сообщение вывести переменную типа int или char? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:02 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbВыдает ошибку пропущено... Странно. С WinCE никогда не сталкивался, а в обычных виндовсах буква W на конце обозначает что используются юникодные строки. Возможно в WinCE это по другому и там нет MessageBoxW, а твой MessageBoxW какая-то самодельная функция. Поищи у себя в исходниках. По хорошему не надо явно W писать, а задать в свойствах проекта использование юникода и вызывать Код: plaintext 1. MessageBox выбирает из 2 вариантов - MessageBoxA или MessageBoxW. В моем случае используется юникодная версия функции. Но в обоих случаях у функции 3 параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:05 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbКак в сообщение вывести переменную типа int или char? Преобразовать в строку, затем строку вывести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:08 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Как функция описана в заголовочном файле WinCE SDK, так и вызывай. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:11 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbКак в сообщение вывести переменную типа int или char? Преобразовать в строку, затем строку вывести. Дело в том, что эта функция не выводит строку авторchar * s2; MessageBox(s2, L"SD", MB_OK) Выдает ошибку автор error C2664: 'MessageBoxW' : cannot convert parameter 1 from 'char *' to 'const unsigned short *' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:11 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbMessageBox выбирает из 2 вариантов - MessageBoxA или MessageBoxW. В моем случае используется юникодная версия функции. Но в обоих случаях у функции 3 параметра.Чудес не бывает! В документации по WinCE функция имеет 4 параметра и первый из них HWND. Ты уверен, что компилятор тянет заголовочный файл из WinCE SDK? Проверь include пути! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:19 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Преобразовать в строку, затем строку вывести. Дело в том, что эта функция не выводит строку авторchar * s2; MessageBox(s2, L"SD", MB_OK) Выдает ошибку автор error C2664: 'MessageBoxW' : cannot convert parameter 1 from 'char *' to 'const unsigned short *' Правильно, т.к. char * это ANSI строка, а функции надо юникод, т.е. TCHAR* (оно же unsigned short *) Надо конвертировать Код: plaintext 1. 2. 3. С юникодом не работал, функции не подскажу, ищи что вместо convert() использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:21 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbMessageBox выбирает из 2 вариантов - MessageBoxA или MessageBoxW. В моем случае используется юникодная версия функции. Но в обоих случаях у функции 3 параметра.Чудес не бывает! В документации по WinCE функция имеет 4 параметра и первый из них HWND. Ты уверен, что компилятор тянет заголовочный файл из WinCE SDK? Проверь include пути! Пример с такой же ошибкой http://forum.vingrad.ru/topic-300919.html Там у функции 3 параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:26 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:34 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbПример с такой же ошибкой http://forum.vingrad.ru/topic-300919.html Там у функции 3 параметра.Потому что там речь идет о вызове статического метода класса CWnd, поэтому без первого параметра, так как CWnd уже знает хендл окна. Попробуй так: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:36 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Для конвертации еще есть mbstowcs() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:41 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devПотому что там речь идет о вызове статического метода класса CWnd, поэтому без первого параметра, так как CWnd уже знает хендл окна. Попробуй так: Код: plaintext 1. ИМХО не поможет. Пусть дальше метод вызывает. Как я понял у ТС проблема с кодировками. 20580928 Он char* пытается в параметры передать, думая что это строка. И как понимаю "error C2664: 'MessageBoxW' : cannot convert parameter 1 from 'char *' to 'const unsigned short *'" он трактует что сюда число надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:47 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima Trdb_devПотому что там речь идет о вызове статического метода класса CWnd, поэтому без первого параметра, так как CWnd уже знает хендл окна. Попробуй так: Код: plaintext 1. ИМХО не поможет. Пусть дальше метод вызывает. Как я понял у ТС проблема с кодировками. 20580928 Он char* пытается в параметры передать, думая что это строка. И как понимаю "error C2664: 'MessageBoxW' : cannot convert parameter 1 from 'char *' to 'const unsigned short *'" он трактует что сюда число надо. Как тогда в качестве параметра передать число? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TИМХО не поможет. Пусть дальше метод вызывает. Как я понял у ТС проблема с кодировками. 20580928 Он char* пытается в параметры передать, думая что это строка. И как понимаю "error C2664: 'MessageBoxW' : cannot convert parameter 1 from 'char *' to 'const unsigned short *'" он трактует что сюда число надо.Потому что он пытается передать строку однобайтных символов вместо UNICODE. Указатель на строку unicode, это, как раз, const unsigned short* - широкий символ . В заголовочных файлах объявлено так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:58 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbКак тогда в качестве параметра передать число? Преобразовать его в строку. wsprintf() Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 15:59 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbКак тогда в качестве параметра передать число?Кто тебе сказал, что компилятор делает разницу между числом и строкой? Без понимания, что в C++ из себя представляет строка и что такое приведение типа указателя тебе тут пока нечего делать. Иди учить матчасть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 16:01 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbКак тогда в качестве параметра передать число? Преобразовать его в строку. wsprintf() Код: plaintext 1. 2. 3. 4. Спасибо! Хоть что-то заработало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 16:08 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Просто удивительно, почему Мастер предлагает закопать дельфи и всех дельфистов оптом... Да вот же почему =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 16:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbСпасибо! Хоть что-то заработало! С wsprintf() поаккуратней, т.к. можно устроить переполнение буфера . Такие косяки потом долго искать придется. И матчасть поучи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 16:17 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbСпасибо! Хоть что-то заработало! Разберись с этим: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 16:31 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbСпасибо! Хоть что-то заработало! Разберись с этим: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Ну вот, а так хотелось по быстрому переписать прогу для терминалов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 16:35 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rb, Про извращенца свои слова назад берешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 17:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
MasterZivSergey_rb, Про извращенца свои слова назад берешь? Беру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 17:20 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Хотя нет . Правильно работает функция ::MessageBoxW Но речь шла о функции MessageBoxW у которой 3 параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 17:22 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbНо речь шла о функции MessageBoxW у которой 3 параметра. Тогда это не функция, а метод определённого класса (о чём ты "забыл" упомянуть). К которому опять же, наверное, есть документация. Но вне зависимости от этого пытаться скармливать char* туда, где требуется wchar_t* - целиком и полностью твоя ошибка. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 17:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Удивительно как все возбудились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2017, 22:11 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТогда это не функция, а метод определённого класса (о чём ты "забыл" упомянуть). К которому опять же, наверное, есть документация. Но вне зависимости от этого пытаться скармливать char* туда, где требуется wchar_t* - целиком и полностью твоя ошибка. Это один из методов CWnd , о чем я ему уже писал 20580975 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 05:27 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Написал такой вариант авторwchar_t tbuf[1024]; char rbuff[1024]; res = recv(sock, rbuff, 1024, 0); MultiByteToWideChar(1251,0,rbuff,-1,tbuf,sizeof(rbuff)); ::MessageBoxW(NULL, (LPCWSTR)&tbuf, L"Тест", MB_ICONEXCLAMATION | MB_OK); На WinCe 5.0 выдает правильное сообщение на русском, на WinCe 6.0 выдает пустое сообщение. Что опять не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 10:22 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Возможно WinCe 6.0 не знает 1251 и ее как-то установить надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 10:52 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
У меня прога, написанная на Лазарусе работает под обеими виндами, так что все там установлено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 11:10 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbНа WinCe 5.0 выдает правильное сообщение на русском, на WinCe 6.0 выдает пустое сообщение. Что опять не так?Потому что надо внимательнее читать документацию ! "cchWideChar [in] Size, in characters , of the buffer indicated by lpWideCharStr. If this value is 0, the function returns the required buffer size, in characters, including any terminating null character, and makes no use of the lpWideCharStr buffer." Для начала убедись, что после recv() в rbuff ты имеешь null-terminated строку. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 11:28 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Не прокатило Вариант с получением IP на WinCe 6.0 не работает, хотя сам адрес определяется корректно автор gethostname(PCName, 30); h = gethostbyname(&PCName[0]); LocalIP = inet_ntoa (*(reinterpret_cast<in_addr *>(*(h->h_addr_list)))); MultiByteToWideChar(1251,0,LocalIP,-1,tbuf,30); ::MessageBoxW(NULL,(LPCWSTR)&tbuf, L"Connected", MB_ICONEXCLAMATION | MB_OK); Может действительно, проблема с кодировками? Как определить, в какой кодировке пришло сообщение в буфер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 11:44 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbМожет действительно, проблема с кодировками? Как определить, в какой кодировке пришло сообщение в буфер?Нет, проблема в ДНК. Иди учить матчасть по null-terminated строкам и арифметику для начальных классов! 4 * 3 символа на октет + 3 * символ-разделитель (точка) + null-terminate символ = ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 11:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbМожет действительно, проблема с кодировками? Проверять коды возврата функций и выводить сообщения об ошибках Пушкин будет?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 11:56 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbКак определить, в какой кодировке пришло сообщение в буфер?Заглянуть в буфер через отладчик и посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 11:58 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbКак определить, в какой кодировке пришло сообщение в буфер?Заглянуть в буфер через отладчик и посмотреть. Нет у меня отладчика, тестирую на терминалах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 12:11 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbМожет действительно, проблема с кодировками? Как определить, в какой кодировке пришло сообщение в буфер?Нет, проблема в ДНК. Иди учить матчасть по null-terminated строкам и арифметику для начальных классов! 4 * 3 символа на октет + 3 * символ-разделитель (точка) + null-terminate символ = ??? У WinCe 6.0. не такая математика как у WinCe 5.0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 12:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbНет у меня отладчика, тестирую на терминалах.Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 13:33 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Ошибку смотри Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 13:34 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbНе прокатило Вариант с получением IP на WinCe 6.0 не работает, хотя сам адрес определяется корректно автор gethostname(PCName, 30); h = gethostbyname(&PCName[0]); LocalIP = inet_ntoa (*(reinterpret_cast<in_addr *>(*(h->h_addr_list)))); MultiByteToWideChar(1251,0,LocalIP,-1,tbuf,30); ::MessageBoxW(NULL,(LPCWSTR)&tbuf, L"Connected", MB_ICONEXCLAMATION | MB_OK); Может действительно, проблема с кодировками? Как определить, в какой кодировке пришло сообщение в буфер?Во-первых, в структуре hostent функция gethostbyname() возвращает совсем не int, который ты пытаешься сконвертировать в строку через inet_ntoa(). Во вторых: "Note The gethostbyname function has been deprecated by the introduction of the https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms738520(v=vs.85).aspx] getaddrinfo function. Developers creating Windows Sockets 2 applications are urged to use the getaddrinfo function instead of gethostbyname ." З.Ы. Лично у меня всё прекрасно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 14:40 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbНе прокатило Вариант с получением IP на WinCe 6.0 не работает, хотя сам адрес определяется корректно пропущено... Может действительно, проблема с кодировками? Как определить, в какой кодировке пришло сообщение в буфер?Во-первых, в структуре hostent функция gethostbyname() возвращает совсем не int, который ты пытаешься сконвертировать в строку через inet_ntoa(). Во вторых: "Note The gethostbyname function has been deprecated by the introduction of the https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms738520(v=vs.85).aspx] getaddrinfo function. Developers creating Windows Sockets 2 applications are urged to use the getaddrinfo function instead of gethostbyname ." З.Ы. Лично у меня всё прекрасно работает. Забыл написать объявление Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 14:50 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 15:01 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Embedded C++ не поддерживает потоки. Я в шоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 09:18 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbEmbedded C++ не поддерживает потоки. Я в шоке.До С++11 в языке вообще не было поддержки потоков, что не мешало писать многопоточные программы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 09:54 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbEmbedded C++ не поддерживает потоки. Я в шоке.Ни один компилятор не поддерживает потоки. Есть лишь библиотеки с классами-обёртками, которые используют API вызовы функций операционной системы для работы с потоками. Потоки работают исключительно на уровне операционной системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 10:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Разобрался, есть CreateThread ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 10:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbРазобрался, есть CreateThreadтогда лучше _beginthreadex(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 11:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
CEMbтогда лучше _beginthreadex(...) уверен, что у топикстартера Windows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 11:27 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
ИзопропилCEMbтогда лучше _beginthreadex(...) уверен, что у топикстартера Windows? в смысле полноценная винда, а не CE на CE - CreateThread вроде как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 11:30 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbРазобрался, есть CreateThreadЭто, как раз, функция WinAPI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 11:48 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbРазобрался, есть CreateThreadЭто, как раз, функция WinAPI. Работает на WinCE 5-7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 14:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Заметил странную работу сокетов - если сервер посылает 2 строку, то считывается строка, если несколько строк, то сначала сервер присылает 4 байта, а потом только донные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:21 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЗаметил странную работу сокетов - если сервер посылает 2 строку , то считывается строка, если несколько строк, то сначала сервер присылает 4 байта, а потом только донные. если сервер посылает 1 строку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:22 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
TCP сокет не обещает выдавать данные получателю теми же порциями, которыми отправлено. Прийти может сколько угодно, а твоя задача принимать и складывать в буфер пока не получишь столько байт, сколько нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:24 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
т.е. надо делать 2 раза recv - первый, чтобы считать 4 байта и второй - чтобы получить данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:30 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TTCP сокет не обещает выдавать данные получателю теми же порциями, которыми отправлено. Прийти может сколько угодно, а твоя задача принимать и складывать в буфер пока не получишь столько байт, сколько нужно. Я проверял несколько раз - если одна строка, то она приходит целиком, если несколько, то сначала 4 байта, видимо это размер данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:32 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbт.е. надо делать 2 раза recv - первый, чтобы считать 4 байта и второй - чтобы получить данные Если первые 4 байта это размер данных, то сначала читаешь размер, выделяешь буфер этого размера и потом recv() до тех пор пока буфер не заполнишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:32 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbт.е. надо делать 2 раза recv - первый, чтобы считать 4 байта и второй - чтобы получить данные Если первые 4 байта это размер данных, то сначала читаешь размер, выделяешь буфер этого размера и потом recv() до тех пор пока буфер не заполнишь. Я делал буфер размером 10240, но порции он выдавал все равно по 1024 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:35 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbт.е. надо делать 2 раза recv - первый, чтобы считать 4 байта и второй - чтобы получить данные Если первые 4 байта это размер данных, то сначала читаешь размер, выделяешь буфер этого размера и потом recv() до тех пор пока буфер не заполнишь. 4 байте приходят не всегда, а только когда передается несколько строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:37 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Если первые 4 байта это размер данных, то сначала читаешь размер, выделяешь буфер этого размера и потом recv() до тех пор пока буфер не заполнишь. 4 байте приходят не всегда, а только когда передается несколько строк Если у тебя обмен по TCP то ты прежде чем что-то писать должен узнать протокол обмена и писать в соответствии с ним. Бери документацию на свой сервер и читай. Эвристический анализ в таких вопросах пустая трата времени. TCP это поток, который приходит кусками данных, размеры кусков зависят передающей среды, тут нет блоков/сообщений, есть куски, которые могут содержать как целое сообщение так и 2, 5 и 17.3 сообщения. Собирать сообщения из кусков твоя задача, как разработчика, а чтобы собирать надо знать как, т.е. протокол обмена. Единственное что гарантирует TCP - это то что данные придут в порядке отправления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:56 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima T, Не поможет, пациент не догоняет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 00:05 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbпропущено... 4 байте приходят не всегда, а только когда передается несколько строк Если у тебя обмен по TCP то ты прежде чем что-то писать должен узнать протокол обмена и писать в соответствии с ним. Бери документацию на свой сервер и читай. Эвристический анализ в таких вопросах пустая трата времени. TCP это поток, который приходит кусками данных, размеры кусков зависят передающей среды, тут нет блоков/сообщений, есть куски, которые могут содержать как целое сообщение так и 2, 5 и 17.3 сообщения. Собирать сообщения из кусков твоя задача, как разработчика, а чтобы собирать надо знать как, т.е. протокол обмена. Единственное что гарантирует TCP - это то что данные придут в порядке отправления. С протоколом все понятно - сервер написан на Делфи и передает StringList. Клиент, работавший на Дельфи, все прекрасно передает и принимает. К сожалению, на С++ нет аналогичного класса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 08:50 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbС протоколом все понятно - сервер написан на Делфи и передает StringList. Клиент, работавший на Дельфи, все прекрасно передает и принимает. К сожалению, на С++ нет аналогичного класса... Читай описаловку на этот StringList, возможно там описаны форматы обмена. Или в форуме по дельфям спроси. Потом пиши свой класс на С++. Может в форуме по дельфям готовый аналог для С++ подскажут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 09:04 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima T, Тсс, только про сериализацию не рассказывай! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 09:25 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено...С протоколом все понятно - сервер написан на Делфи и передает StringList. Клиент, работавший на Дельфи, все прекрасно передает и принимает. К сожалению, на С++ нет аналогичного класса... В C++ Builder StringList есть. И с Делфи/Билдер идут исходники VCL на паскале. При желании можно изучить устройство StringList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 10:01 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
m_SlaВ C++ Builder StringList есть. И с Делфи/Билдер идут исходники VCL на паскале. При желании можно изучить устройство StringList.Именно так! В Borland/Embarcadero C++ Builder всегда присутствовали все те же классы, что и в Borland/Embarcadero Delphi, причем, C++ Builder использует библиотеки в подавляющем большинстве написанные на Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 13:09 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
m_SlaSergey_rbпропущено... С протоколом все понятно - сервер написан на Делфи и передает StringList. Клиент, работавший на Дельфи, все прекрасно передает и принимает. К сожалению, на С++ нет аналогичного класса... В C++ Builder StringList есть. И с Делфи/Билдер идут исходники VCL на паскале. При желании можно изучить устройство StringList. Я на С++ пишу не от хорошей жизни, а потому, что WinCE 7 перестала поддерживать VCL. Так то Дельфи нервно курит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2017, 20:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Вопрос - как перевести кодировку Win-1252 в Win-1251? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:03 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
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 нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Дельфи переводит, значит возможность есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:38 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbДельфи переводит, значит возможность есть. Тогда скорее всего не переводит, т.е. просто делается предположение: "считаем эту кодировку 1251" и дальше работа как-будто это 1251. Явно кодировка обычно никак не указывается, это просто массив байт и договоренность между писателем и читателем как этот массив трактовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:45 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
WinCE 5.0 имеет кодировку 1251 и на ней функция MultiByteToWideChar работает корректно. но WinCE 6.0 имеет кодировку 1252 и поэтому сообщения в MessageBox выводится абракадабра. Я вижу 2 варианта - поменять кодировку текста или программно поменять кодовую страницу WinCE 6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:56 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
3-й вариант - перегнать в UTF-8 а потом в 1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:01 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЯ вижу 2 варианта - поменять кодировку текста или программно поменять кодовую страницу WinCE 6.0 А явно указать кодировку 1251 при вызове MultiByteToWideChar() вместо ACP_ANSI тебе мешает что? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:03 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbЯ вижу 2 варианта - поменять кодировку текста или программно поменять кодовую страницу WinCE 6.0 А явно указать кодировку 1251 при вызове MultiByteToWideChar() вместо ACP_ANSI тебе мешает что? Ни что не мешает, но не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:04 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbно WinCE 6.0 имеет кодировку 1252 и поэтому сообщения в MessageBox выводится абракадабра. Он в принципе русский понимает без юникода? Если так написать то что будет? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbНи что не мешает, но не работает. Чем аргументирует? "Invalid user, replace it and strike any key"? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:25 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbНи что не мешает, но не работает. Чем аргументирует? "Invalid user, replace it and strike any key"? Просто выводит пустое сообщение и это понятно, т.к. коды символов не совпадают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:31 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbно WinCE 6.0 имеет кодировку 1252 и поэтому сообщения в MessageBox выводится абракадабра. Он в принципе русский понимает без юникода? Если так написать то что будет? Код: plaintext 1. Сам по себе русский язык поддерживатеся. Код: plaintext 1. Выводит сообщение корректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:32 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbПросто выводит пустое сообщение и это понятно, т.к. коды символов не совпадают. Нет, это потому, что ты так и не научился проверять возвращаемое функциями значение. В морг. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:35 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Он в принципе русский понимает без юникода? Если так написать то что будет? Код: plaintext 1. Сам по себе русский язык поддерживатеся. Код: plaintext 1. Выводит сообщение корректно. Ты разницу понимаешь между A и W ? Я про А спрашивал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:38 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbВыводит сообщение корректно. Сделай свою функцию перекодировки из 1251 в юникод и ей пользуйся. Это массив с таблицей перекодировки wchar_t recode[256] плюс несложная функция посимвольной конвертации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:45 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbВыводит сообщение корректно. Сделай свою функцию перекодировки из 1251 в юникод и ей пользуйся. Это массив с таблицей перекодировки wchar_t recode[256] плюс несложная функция посимвольной конвертации. Хорошо тому , у кого есть отладчик, а если вместо отладчика MessageBox с абракадаброй вместо русских букв, то задача становится не такой простой. Неужели никто не написал такой функции на с++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:55 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbпропущено... Сам по себе русский язык поддерживатеся. Код: plaintext 1. Выводит сообщение корректно. Ты разницу понимаешь между A и W ? Я про А спрашивал. A не работает, т.к. проект в Unicode. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:56 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Сделай свою функцию перекодировки из 1251 в юникод и ей пользуйся. Это массив с таблицей перекодировки wchar_t recode[256] плюс несложная функция посимвольной конвертации. Хорошо тому , у кого есть отладчик, а если вместо отладчика MessageBox с абракадаброй вместо русских букв, то задача становится не такой простой. Неужели никто не написал такой функции на с++? Ты это на компе пиши, а не на своих девайсах. Там делов на полчаса-час: заполнить массив char значениями 1...255, отконвертировать в wchar_t с помощью MultiByteToWideChar , вывести в консоль что получилось и скопипастить в код в виде Код: plaintext 1. 2. 3. 4. 5. дальше берешь по одному символу в 1251 и конвертируешь с помощью convert1251(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 14:07 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Ты разницу понимаешь между A и W ? Я про А спрашивал. A не работает, т.к. проект в Unicode. Забей. Может потом когда-нибудь поймешь. Делай свою таблицу, как я выше написал, думаю осилишь и все у тебя заработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 14:09 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbпропущено... Хорошо тому , у кого есть отладчик, а если вместо отладчика MessageBox с абракадаброй вместо русских букв, то задача становится не такой простой. Неужели никто не написал такой функции на с++? Ты это на компе пиши , а не на своих девайсах. Там делов на полчаса-час: заполнить массив char значениями 1...255, отконвертировать в wchar_t с помощью MultiByteToWideChar , вывести в консоль что получилось и скопипастить в код в виде Код: plaintext 1. 2. 3. 4. 5. дальше берешь по одному символу в 1251 и конвертируешь с помощью convert1251(). Я и пишу на компе, но запустить на нем не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 14:13 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЯ и пишу на компе, но запустить на нем не могу. И что мешает создать отдельный проект консольного приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 14:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Ты это на компе пиши , а не на своих девайсах. Там делов на полчаса-час: заполнить массив char значениями 1...255, отконвертировать в wchar_t с помощью MultiByteToWideChar , вывести в консоль что получилось и скопипастить в код в виде Код: plaintext 1. 2. 3. 4. 5. дальше берешь по одному символу в 1251 и конвертируешь с помощью convert1251(). Я и пишу на компе, но запустить на нем не могу.Как ты думаешь, зачем на сайте Microsoft лежит эмулятор PocketPC с WinCE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 14:39 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbпропущено... Я и пишу на компе, но запустить на нем не могу.Как ты думаешь, зачем на сайте Microsoft лежит эмулятор PocketPC с WinCE? Толку с него, если прога на одном терминале работает, а на другом нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 15:11 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbХорошо тому , у кого есть отладчик, а если вместо отладчика MessageBox с абракадаброй вместо русских букв, то задача становится не такой простой. О чём ты? Где в сообщении "MultibyteToWideChar() returned %d, error code %d" ты видишь русские буквы? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 16:17 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Я что-то не понимаю Беру один символ , перевожу в hex и получаю FFFFFFCF Код: plaintext 1. 2. Беру численный эквивалент, получаю -49 Код: plaintext 1. 2. Как код символа может быть отрицательным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 08:52 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Может это число - какой-то сдвиг вниз, например от 256 или от 127? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 08:54 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Тип char знаковый, т.е. имеет значения -128 ... 127. Отрицательные хранятся в дополненном виде , т.е. все беззнаковые значения >127 будут выводится как отрицательные, например беззнаковое 255 будет показано как -1. Перед использованием просто приведи к беззнаковому: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:11 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TТип char знаковый, т.е. имеет значения -128 ... 127. Отрицательные хранятся в дополненном виде , т.е. все беззнаковые значения >127 будут выводится как отрицательные, например беззнаковое 255 будет показано как -1. Перед использованием просто приведи к беззнаковому: Код: plaintext 1. Получилось! А как теперь новый код загнать в hex или в строку? У меня есть дельфевая таблица перевода в формате: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:27 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rb, ни в unicode, ни в utf8 такого значения (FFFFFFCF) не может быть в принципе. Ты опять где-то накосячил! Тут программист нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:32 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbА как теперь новый код загнать в hex или в строку? Ничего не понял. Пиши подробнее что делаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:41 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rb, ни в unicode, ни в utf8 такого значения (FFFFFFCF) не может быть в принципе. Ты опять где-то накосячил! Тут программист нужен. unsigned char исправил ситуацию, теперь hex = CF и int = 207 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:43 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbА как теперь новый код загнать в hex или в строку? Ничего не понял. Пиши подробнее что делаешь. Я пишу функцию конвертации Win1251 в Win1252 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:48 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЯ пишу функцию конвертации Win1251 в Win1252 транслит что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:15 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Ничего не понял. Пиши подробнее что делаешь. Я пишу функцию конвертации Win1251 в Win1252 Может в юникод? Как я выше предлагал 20629335 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:18 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
ИзопропилSergey_rbЯ пишу функцию конвертации Win1251 в Win1252 транслит что ли? Описываю ситуацию. На терминалах стоит WinCE, но с разными кодовыми страницами. Если кодовая страница 1251, то русский отображается правильно, если стоит кодовая страница 1252, от козябры. Нужна функция перевода из 1251 в 1252. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:19 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbНужна функция перевода из 1251 в 1252. Sergey_rbИзопропилпропущено... транслит что ли? Описываю ситуацию. На терминалах стоит WinCE, но с разными кодовыми страницами. Если кодовая страница 1251, то русский отображается правильно, если стоит кодовая страница 1252, от козябры. Нужна функция перевода из 1251 в 1252. в 1252 кириллица - отсутствует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
ИзопропилSergey_rbНужна функция перевода из 1251 в 1252. Sergey_rbпропущено... Описываю ситуацию. На терминалах стоит WinCE, но с разными кодовыми страницами. Если кодовая страница 1251, то русский отображается правильно, если стоит кодовая страница 1252, от козябры. Нужна функция перевода из 1251 в 1252. в 1252 кириллица - отсутствует В Лазаре я перевожу в utf8. Но Лазарь умный, он умеет определять кодировку текста, т.е. если текст не utf8, то перевожу в utf8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 10:32 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЕсли кодовая страница 1251, то русский отображается правильно, если стоит кодовая страница 1252, от козябры. Нужна функция перевода из 1251 в 1252. Не нужна. Нужна функция перевода 1251 в Unicode. И это MultiByteToWideChar(). А тебе надо просто правильно её вызывать. А чтобы выяснить что ты сделал неправильно, надо проверять возвращаемый ею код ошибки. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 11:58 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbОписываю ситуацию. На терминалах стоит WinCE, но с разными кодовыми страницами. Если кодовая страница 1251, то русский отображается правильно, если стоит кодовая страница 1252, от козябры. Нужна функция перевода из 1251 в 1252.А тупо поменять в настройках терминала кодовую страницу по умолчанию или, на худой конец, поменять значение ключа "1252" в ветке реестра WinCE Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:02 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbВ Лазаре я перевожу в utf8. Но Лазарь умный, он умеет определять кодировку текста, т.е. если текст не utf8, то перевожу в utf8.Функции WinAPI не понимают utf8, они понимают unicode. Улавливаешь основную мысль - UNICODE != UTF8 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:04 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbЕсли кодовая страница 1251, то русский отображается правильно, если стоит кодовая страница 1252, от козябры. Нужна функция перевода из 1251 в 1252. Не нужна. Нужна функция перевода 1251 в Unicode. И это MultiByteToWideChar(). А тебе надо просто правильно её вызывать. А чтобы выяснить что ты сделал неправильно, надо проверять возвращаемый ею код ошибки. Эту функцию я как только не крутил. Но на одной кодировке (1251) она правильно выдает русские буквы, на кодировке 1252 выдает пустоту. Можно поиграться с первым параметром, но либо пустота, либо квадратики. Если первым параметром поставить 1252 то выдает абракадабру, которую я и пытаюсь русифицировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:09 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDimitry Sibiryakovпропущено... Не нужна. Нужна функция перевода 1251 в Unicode. И это MultiByteToWideChar(). А тебе надо просто правильно её вызывать. А чтобы выяснить что ты сделал неправильно, надо проверять возвращаемый ею код ошибки. Эту функцию я как только не крутил. Но на одной кодировке (1251) она правильно выдает русские буквы, на кодировке 1252 выдает пустоту. Можно поиграться с первым параметром, но либо пустота, либо квадратики. Если первым параметром поставить 1252 то выдает абракадабру, которую я и пытаюсь русифицировать Так делал 20583452 ? Что получилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:13 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbОписываю ситуацию. На терминалах стоит WinCE, но с разными кодовыми страницами. Если кодовая страница 1251, то русский отображается правильно, если стоит кодовая страница 1252, от козябры. Нужна функция перевода из 1251 в 1252.А тупо поменять в настройках терминала кодовую страницу по умолчанию или, на худой конец, поменять значение ключа "1252" в ветке реестра WinCE Код: plaintext Нет на складе специалистов, которые поменяют реестр. setlocale почему-то не линкуется, #include <locale.h> прописал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:15 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbМожно поиграться с первым параметром, но либо пустота, либо квадратики. Иди в Лего поиграйся. Тут программист нужен. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:17 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbпропущено... Эту функцию я как только не крутил. Но на одной кодировке (1251) она правильно выдает русские буквы, на кодировке 1252 выдает пустоту. Можно поиграться с первым параметром, но либо пустота, либо квадратики. Если первым параметром поставить 1252 то выдает абракадабру, которую я и пытаюсь русифицировать Так делал 20583452 ? Что получилось? Как я и писал, при первом параметре 1252 выдает количество перекодированных символов, при 1251 выдает 0 и соответственно пустой текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:22 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbМожно поиграться с первым параметром, но либо пустота, либо квадратики. Иди в Лего поиграйся. Тут программист нужен. Так я здесь и спрашиваю совет программистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Так делал 20583452 ? Что получилось? Как я и писал, при первом параметре 1252 выдает количество перекодированных символов, при 1251 выдает 0 и соответственно пустой текст. Мдя ... там пример как код ошибки посмотреть. Если получил 0, то для получения кода ошибки надо вызвать GetLastError(). Что он вернул когда 0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:33 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
А файл 1251.nls физически имеется ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:35 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbпри первом параметре 1252 выдает количество перекодированных символов, при 1251 выдает 0 и соответственно пустой текст. Но как именно ты задавал этот параметр, ты, конечно же, не покажешь. Sergey_rbТак я здесь и спрашиваю совет программистов. Совет программистов: проверяй результат функции, выводи код ошибки. Даётся тебе уже не первый раз. Но ты ему не следуешь. Назачем тогда спрашиваешь? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 12:45 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbпропущено... Как я и писал, при первом параметре 1252 выдает количество перекодированных символов, при 1251 выдает 0 и соответственно пустой текст. Мдя ... там пример как код ошибки посмотреть. Если получил 0, то для получения кода ошибки надо вызвать GetLastError(). Что он вернул когда 0? Код ошибки 120 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:06 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbпри первом параметре 1252 выдает количество перекодированных символов, при 1251 выдает 0 и соответственно пустой текст. Но как именно ты задавал этот параметр, ты, конечно же, не покажешь. Sergey_rbТак я здесь и спрашиваю совет программистов. Совет программистов: проверяй результат функции, выводи код ошибки. Даётся тебе уже не первый раз. Но ты ему не следуешь. Назачем тогда спрашиваешь? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:08 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbMultiByteToWideChar(1252,0,rbuff,-1,tbuf,sizeof(rbuff)); Ты хочешь перекодировать из 1251, а пишешь 1252. Логика, блин! И с чего ты взял, что у тебя в rbuff лежит null-terminated строка? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:16 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Мдя ... там пример как код ошибки посмотреть. Если получил 0, то для получения кода ошибки надо вызвать GetLastError(). Что он вернул когда 0? Код ошибки 120 Если я правильно понял, то ошибка 120 это: 120: Эта функция не поддерживается для этой системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:19 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbMultiByteToWideChar(1252,0,rbuff,-1,tbuf,sizeof(rbuff)); Ты хочешь перекодировать из 1251, а пишешь 1252. Логика, блин! И с чего ты взял, что у тебя в rbuff лежит null-terminated строка? Потому что с параметром 1251 функция выдает ошибку. Со строками все в порядке, т.к. с кодовой страницей 1251 работает корректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:20 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Мдя ... там пример как код ошибки посмотреть. Если получил 0, то для получения кода ошибки надо вызвать GetLastError(). Что он вернул когда 0? Код ошибки 120 https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx ERROR_CALL_NOT_IMPLEMENTED 120 (0x78) This function is not supported on this system. Если с 1252 вызывается, а с 1251 эта ошибка, то похоже что виндовс не знает как перекодировать из 1251. Как его этому научить - не подскажу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:26 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли с 1252 вызывается, а с 1251 эта ошибка, то похоже что виндовс не знает как перекодировать из 1251. Или, что вероятнее, аффтар опять написал какую-то фигню и возвращаемый код - совсем от другой функции. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:33 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbпропущено... Код ошибки 120 https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx ERROR_CALL_NOT_IMPLEMENTED 120 (0x78) This function is not supported on this system. Если с 1252 вызывается, а с 1251 эта ошибка, то похоже что виндовс не знает как перекодировать из 1251. Как его этому научить - не подскажу. Именно так - с 1252 переводится, а с 1251 -нет. Поэтому нужна функция перекодировки, не зависимая от кодовой страницы винды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:35 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDima TЕсли с 1252 вызывается, а с 1251 эта ошибка, то похоже что виндовс не знает как перекодировать из 1251. Или, что вероятнее, аффтар опять написал какую-то фигню и возвращаемый код - совсем от другой функции. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:36 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Как из кодов символов UTF8 собрать строку? К примеру код символа Код: plaintext 1. эквивалент буквы "А" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:40 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbКак из кодов символов UTF8 собрать строку? К примеру код символа Код: plaintext 1. эквивалент буквы "А" Точно UTF-8 ? В твоих примерах выше используется юникод (он же UTF-16). строка это массив символов, последний 0. В юникоде так: Код: plaintext 1. 2. 3. 4. 5. это аналогично Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:49 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rb Код: sql 1. 2. 3. 4. 5. Ну, как я и сказал, этот хомячок выводит код ошибки MessageBoxW. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:50 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbКак из кодов символов UTF8 собрать строку? К примеру код символа Код: plaintext 1. эквивалент буквы "А"Очень просто! Сначала приведи строку в utf8 к unicode по алгоритму кодирования, ссылку на который я давал тебе здесь ранее, а потом можешь работать с такой строкой стандартными средствами - функциями WinAPI. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
В Лазарусе я использую функцию CP1251ToUTF8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:56 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rb Код: sql 1. 2. 3. 4. 5. Ну, как я и сказал, этот хомячок выводит код ошибки MessageBoxW. Странно, но я на экране вижу сообщение MessageBoxW причем без ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 13:58 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbКак из кодов символов UTF8 собрать строку? К примеру код символа Код: plaintext 1. эквивалент буквы "А" Точно UTF-8 ? В твоих примерах выше используется юникод (он же UTF-16). строка это массив символов, последний 0. В юникоде так: Код: plaintext 1. 2. 3. 4. 5. это аналогично Код: plaintext 1. не работает прямое присвоение, пишет ошибку error C2166: l-value specifies const object если поставить в кавычки, то ошибка error C2440: '=' : cannot convert from 'char [7]' to 'const char' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 14:39 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
у меня все работает Код: plaintext 1. 2. 3. 4. 5. 6. только 0xD090 это иероглиф какой-то. Буква А имеет код 0x0410 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 14:46 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima Tу меня все работает Код: plaintext 1. 2. 3. 4. 5. 6. только 0xD090 это иероглиф какой-то. Буква А имеет код 0x0410 Тут я ступил, надо брать код UNICODE, а не UTF8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 14:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tу меня все работает Код: plaintext 1. 2. 3. 4. 5. 6. только 0xD090 это иероглиф какой-то. Буква А имеет код 0x0410 Тут я ступил, надо брать код UNICODE, а не UTF8Потому, что UTF8, в отличие от UNICODE, это не кодировка символов, а некий способ представления кода символа UNICODE в виде байт-последовательности переменной длины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:04 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbесли поставить в кавычки, то ошибка error C2440: '=' : cannot convert from 'char [7]' to 'const char' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:07 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
да что ж у меня привычка CTRL+ENTER давить-то... wchar_t str[4] = L"ААА"; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:08 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devПотому, что UTF8, в отличие от UNICODE, это не кодировка символов, а некий способ представления кода символа UNICODE в виде байт-последовательности переменной длины. В виндовсе тоже не UNICODE, а UTF-16LE. Как понимаю они совпадают до определенного момента. https://ru.wikipedia.org/wiki/UTF-16 UTF-16LE и UTF-16BE Предусмотрена также возможность внешнего указания порядка байтов — для этого кодировка должна быть описана как UTF-16LE или UTF-16BE (little-endian / big-endian), а не просто UTF-16. В этом случае метка порядка байтов (U+FEFF) не нужна. UTF-16 в ОС Windows Основная статья: Юникод в операционных системах Microsoft В API Win32, распространённом в современных версиях операционной системы Microsoft Windows, имеется два способа представления текста: в форме традиционных 8-битных кодовых страниц и в виде UTF-16. При использовании UTF-16, Windows не накладывает ограничений на прикладные программы касательно кодирования текстовых файлов, позволяя им использовать как UTF-16LE, так и UTF-16BE посредством установки и трактовки соответствующей метки порядка байтов. Однако внутренний формат Windows - всегда UTF-16LE. Этот момент следует учитывать при работе с исполняемыми файлами, использующими юникодовые версии функций WinAPI. Строки в них всегда кодируются в UTF-16LE[1]. В файловых системах NTFS, а также FAT с поддержкой длинных имён, имена файлов записываются также в UTF-16LE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:15 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
раздули из мухи слона ТС, пользуйся на здоровье Код: plaintext 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. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
CerebrumТС, пользуйся на здоровье У него вся проблема в том что WinCE английская и там MultiByteToWideChar() не перекодирует из 1251. Но пусть попробует. PS Sergey_rb, если будешь этот код использовать, не забудь про освобождение памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:30 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TCerebrumТС, пользуйся на здоровье У него вся проблема в том что WinCE английская и там MultiByteToWideChar() не перекодирует из 1251. Но пусть попробует. PS Sergey_rb, если будешь этот код использовать, не забудь про освобождение памяти. У меня получилось написать свою функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:32 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Cerebrum, Вариант с Код: plaintext 1. не работает, т.к. зависит от кодовой страницы винды, т.к. CP_ACP = 1252. В результате получаются иероглифы, которые я потом перевожу в русский текст через свою функцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:37 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rb, если получилось, то хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:39 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbКак из кодов символов UTF8 собрать строку? К примеру код символа Код: plaintext 1. эквивалент буквы "А" Точно UTF-8 ? В твоих примерах выше используется юникод (он же UTF-16). строка это массив символов, последний 0. В юникоде так: Код: plaintext 1. 2. 3. 4. 5. это аналогично Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:51 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbА можно вместо wchar_t использовать string? Можно wstring https://msdn.microsoft.com/en-us/library/hd5zecz6.aspx wstring A type that describes a specialization of the template class basic_string with elements of type wchar_t as a wstring. PS Поражаюсь твоей способности оформлять посты в стиле "угадайте что я хотел сказать, сломайте себе мозг". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:59 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devПотому, что UTF8, в отличие от UNICODE, это не кодировка символов, а некий способ представления кода символа UNICODE в виде байт-последовательности переменной длины.utf8 одна из кодировок, используемых для представлению юникодных символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 16:49 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbА можно вместо wchar_t использовать string? Можно wstring https://msdn.microsoft.com/en-us/library/hd5zecz6.aspx wstring A type that describes a specialization of the template class basic_string with elements of type wchar_t as a wstring. PS Поражаюсь твоей способности оформлять посты в стиле "угадайте что я хотел сказать, сломайте себе мозг". Спасибо! wstring - это то, что надо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 16:57 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovutf8 одна из кодировок, используемых для представлению юникодных символов.А я как написал? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 09:57 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbCerebrum, Вариант с Код: plaintext 1. не работает, т.к. зависит от кодовой страницы винды, т.к. CP_ACP = 1252. В результате получаются иероглифы, которые я потом перевожу в русский текст через свою функциюНе проще ли написать программу, которая через функции WinAPI работы с реестром будет в ветке реестра Код: plaintext Можно вообще не париться написанием программы, а воспользоваться имеющимся инструментарием и документацией: * Windows Embedded Compact 7: How to Use the Remote Tools Framework Without KITL or ActiveSync * Remote Tools (Compact 2013) * Windows Embedded 8 Technical References Нафига насиловать моСк себе и другим написанием программы, если ты, вообще, ни разу не программист? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 10:34 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rb Код: plaintext 1. а если вместо CP_ACP написать 1251? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 10:39 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devНе проще ли написать программу, которая через функции WinAPI работы с реестром будет в ветке реестра Код: plaintext серьёзно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 10:40 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Изопропил, а в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 10:46 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devа в чем проблема? Программу, которая убивает всю систему одним ударом, можно написать и проще. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 10:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
ИзопропилSergey_rb Код: plaintext 1. а если вместо CP_ACP написать 1251? Как я и писал, при первом параметре 1252 выдает количество перекодированных символов, при 1251 выдает 0 и соответственно пустой текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 11:10 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbCerebrum, Вариант с Код: plaintext 1. не работает, т.к. зависит от кодовой страницы винды, т.к. CP_ACP = 1252. В результате получаются иероглифы, которые я потом перевожу в русский текст через свою функциюНе проще ли написать программу, которая через функции WinAPI работы с реестром будет в ветке реестра Код: plaintext Можно вообще не париться написанием программы, а воспользоваться имеющимся инструментарием и документацией: * Windows Embedded Compact 7: How to Use the Remote Tools Framework Without KITL or ActiveSync * Remote Tools (Compact 2013) * Windows Embedded 8 Technical References Нафига насиловать моСк себе и другим написанием программы, если ты, вообще, ни разу не программист? Править реестр - это удел сисадминов, а не программистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 11:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, я в XP менял и ничего... Ну поедет у него отображение романской кодировки второй половины WIN1252 и чо? Всё равно все латинские буквы первой половины кодировки останутся на месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 11:16 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devя в XP менял и ничего... Ну поедет у него отображение романской кодировки второй половины WIN1252 и чо? Если у тебя сама винда с романской локализацией и половина программ на ней такая же - ты будешь готов убить того, кто так сделает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 11:58 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, да плевать на романскую локализацию! Первая половина - ASCII, которой пишется английский текст, совпадает абсолютно у всех виндовых кодировок, а на национальную кодировку плевать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:02 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, плевать в том смысле, если этим КПК будут пользоваться не итальянцы, а русские. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:03 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Честно говоря, я даже на подозревал, что на С++ нет готовых функций перекодировок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:15 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devDimitry Sibiryakov, да плевать на романскую локализацию! Первая половина - ASCII, которой пишется английский текст, совпадает абсолютно у всех виндовых кодировок, а на национальную кодировку плевать! Можно было заморочиться и поставить WinCE 6.0 вместо WinCE 7.0 и не переписывать прогу на С++. Но админы сказали, что это невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:17 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЧестно говоря, я даже на подозревал, что на С++ нет готовых функций перекодировок. Есть, но они тебе не понравятся. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:36 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSergey_rbЧестно говоря, я даже на подозревал, что на С++ нет готовых функций перекодировок. Есть, но они тебе не понравятся. А называются они - сделай сам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:49 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbА называются они - сделай сам? Не, эти я бы тебе не предлагал. Я же знаю, что ты мозг включать не в состоянии. Я имею в виду те, что описаны на http://en.cppreference.com/w/cpp/locale Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 13:00 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Locale предлагали. Ниасилил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 13:04 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНе, эти я бы тебе не предлагал. Я же знаю, что ты мозг включать не в состоянии. Я имею в виду те, что описаны на http://en.cppreference.com/w/cpp/locale Топикстартер утверждает, что у него эти стандартные функции, описанные еще стандартом POSIX.1, не линкуются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 13:05 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
вариант с функцией перекодировки меня устраивает больше, т.к. теперь я весь проект смогу перевести на wstring. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 13:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devИзопропил, а в чем проблема? грязными руками лезть в реестр только потому что не удалось осилить функцию перекодировки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 13:15 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Изопропилгрязными руками лезть в реестр только потому что не удалось осилить функцию перекодировки?Если не ламер и понимаешь - что/как/для чего, то можно и залезть. :) Если... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 13:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devИзопропилгрязными руками лезть в реестр только потому что не удалось осилить функцию перекодировки?Если не ламер и понимаешь - что/как/для чего, то можно и залезть. :) Если... Я уже писал, что на складе нет специалистов. К тому же прога, написанная на Лазарусе, справляется с перекодировкой на ура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 13:29 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devИзопропилгрязными руками лезть в реестр только потому что не удалось осилить функцию перекодировки?Если не ламер и понимаешь - что/как/для чего, то можно и залезть. :) Если... Ламер и лезет собственно. потому как не через жопу задачу решить не может ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 14:01 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЯ уже писал, что на складе нет специалистов. К тому же прога, написанная на Лазарусе, справляется с перекодировкой на ураКак думаешь, зачем существует такие программы, как pcAnywhere/RAdmin/VNC/TeamViewer/MSTSC ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 14:51 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbЯ уже писал, что на складе нет специалистов. К тому же прога, написанная на Лазарусе, справляется с перекодировкой на ураКак думаешь, зачем существует такие программы, как pcAnywhere/RAdmin/VNC/TeamViewer/MSTSC ? Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 14:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
НевезучийЗачем?Любезный, ты разделом форума не ошибся? Ладно, отвечу - за ради "дистанционной консоли". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 23:40 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devНевезучийЗачем?Любезный, ты разделом форума не ошибся? Ладно, отвечу - за ради "дистанционной консоли". Здесь форум сисадминов? Дистанционная консоль для терминала сбора данных, в котором всего 8мБ оперативки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 08:07 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Закрадывается смутное сомнение, что придется писать функцию обратной перекодировки - из юникода в 1251, т.к. функция send работает с char. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 11:08 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbrdb_devпропущено... Любезный, ты разделом форума не ошибся? Ладно, отвечу - за ради "дистанционной консоли". Здесь форум сисадминов?Тебе ехать или шашечки? Sergey_rbДистанционная консоль для терминала сбора данных, в котором всего 8мБ оперативки?На складе нет подключенного к сети компьютера, к которому можно было бы подключить терминал сбора данных? Как же они данные с ТСД в офис сливают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 14:48 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЗакрадывается смутное сомнение, что придется писать функцию обратной перекодировки - из юникода в 1251, т.к. функция send работает с char. функция send работает с любым байт массивом, просто, тип переменной выбран не удачно (возможно исторически так сложилось), а так можешь рассматривать ее как указатель на что угодно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 17:33 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbпропущено... Здесь форум сисадминов?Тебе ехать или шашечки? Sergey_rbДистанционная консоль для терминала сбора данных, в котором всего 8мБ оперативки?На складе нет подключенного к сети компьютера, к которому можно было бы подключить терминал сбора данных? Как же они данные с ТСД в офис сливают ? По Wi-Fi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2017, 19:42 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
CerebrumSergey_rbЗакрадывается смутное сомнение, что придется писать функцию обратной перекодировки - из юникода в 1251, т.к. функция send работает с char. функция send работает с любым байт массивом, просто, тип переменной выбран не удачно (возможно исторически так сложилось), а так можешь рассматривать ее как указатель на что угодно Как отправить wstring? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2017, 19:44 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbКак отправить wstring? программиста нанять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2017, 22:45 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbКак отправить wstring? я не использую в своей практике данный класс, поэтому, если вдруг ошибусь, меня поправят, но примерно, как-то так... Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2017, 22:56 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbПо Wi-FiТак это и есть подключение к сети - Ethernet 802.11 Чем не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2017, 09:30 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2018126]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
162ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 384ms |

| 0 / 0 |
