Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2015, 18:15   #1
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию Завершает ли MultiByteToWideChar строку терминальным нолём?

Код:
MultiByteToWideChar(CP_ACP, 0, String, Bytes, WideString, L);
Если Bytes учитывет терминальный 0, то завершается ли терминальным нолём строка по адресу WideString?
Код:
L=MultiByteToWideChar(CP_ACP, 0, String, Bytes, nullptr, 0);
Если Bytes учитывает терминальный ноль, то учитывает ли его L? Можно ли вообще учитывать терминальный ноль в Bytes?
taras-proger вне форума Ответить с цитированием
Старый 29.11.2015, 19:24   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Если вы указали размер строки - нет (если только не указали и 0 в размере).
Если размер строки - -1, тогда да.
waleri вне форума Ответить с цитированием
Старый 30.11.2015, 05:52   #3
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Вы мой пост читали?
taras-proger вне форума Ответить с цитированием
Старый 30.11.2015, 11:41   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

документацию прочитайте.
и не делайте херни наугад.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.12.2015, 12:56   #5
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Где Вы видите угад?
taras-proger вне форума Ответить с цитированием
Старый 02.12.2015, 16:21   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Что вам в ответе waleri не понятно?

Цитата:
Если Bytes учитывет терминальный 0, то завершается ли терминальным нолём строка по адресу WideString?
Цитата:
If this parameter is set to a positive integer, the function processes exactly the specified number of bytes. If the provided size does not include a terminating null character, the resulting Unicode string is not null-terminated, and the returned length does not include this character.
Цитата:
Если Bytes учитывает терминальный ноль, то учитывает ли его L?
Если вы про префикс, то как он связан с вашим числом? Строка, естественно, нуль-терминальная.

Цитата:
Можно ли вообще учитывать терминальный ноль в Bytes?
Вам повторить цитату из доки про этот параметр?
p51x вне форума Ответить с цитированием
Старый 02.12.2015, 19:00   #7
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Если вы про префикс, то как он связан с вашим числом?
Это имя формального параметра.

Цитата:
Сообщение от p51x Посмотреть сообщение
Что вам в ответе waleri не понятно?
Он к вопросу не относится. Но ответ получен:
Цитата:
If this parameter is set to a positive integer, the function processes exactly the specified number of bytes. If the provided size does not include a terminating null character, the resulting Unicode string is not null-terminated, and the returned length does not include this character.
, вызывающая функция исправлена.

Последний раз редактировалось Stilet; 02.12.2015 в 19:45.
taras-proger вне форума Ответить с цитированием
Старый 02.12.2015, 19:32   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от taras-proger Посмотреть сообщение
Он к вопросу не относится.
То, что вы чего-то не поняли не значит, что оно не имеет отношения к вопросу.
waleri вне форума Ответить с цитированием
Старый 02.12.2015, 19:55   #9
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Наоборот. Если что то не относится к вопросу, это не значит, что оно мне не понятно. Что было рассмотрено в "ответе"?
1. L, равный длине строки без учёта терминального ноля.
2. Отрицательный L.
А что было в вопросе?
taras-proger вне форума Ответить с цитированием
Старый 02.12.2015, 22:41   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

первая строчка первого ответа это все и дала.
в скобках.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(Си) Заполнить массив B[10][10] случайными числами. Завершает программу. neZadrot Помощь студентам 2 04.11.2013 01:23
Debug, Отладка завершает программу после точки останова 3betmebabyImFamous Общие вопросы по Java, Java SE, Kotlin 0 09.08.2012 15:41
Действие lines.add не завершает свего дествия, т.е прерывается NiKiToZZ- Помощь студентам 1 13.02.2011 13:53
Почему мой код не завершает процесс? Stilet Win Api 1 24.07.2008 20:28