Ошибки, баги, вопросы - страница 2578
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попробуйте
После того как это сработает, я бы обратите внимание на wcscpy.
Попробуйте
После того как это сработает, я бы обратите внимание на wcscpy.
Нет, так не сработало, строка не передается, но и проблем не возникает.
А вот так без нуля сработало, но так плывёт конец строки лишними символами.
Нет, так не сработало, строка не передается, но и проблем не возникает.
А вот так сработало, но снова плывёт конец строки лишними символами.
Читаем внимательно доки по std::wcslen
Returns the length of a wide string, that is the number of non-null wide characters that precede the terminating null wide character.
Если don't undestand, то гугл хелп ми:
Возвращает длину широкой строки, то есть количество ненулевых широких символов, которые предшествуют завершающему нулевому широкому символу. Если совсем не верим, то пишем проверку:
Запускаем и видим:Переписываем:
Вывод: сначала читаем доки, не поняли, идем на форум, читаем форум, помним, что тот, кто пишет на форуме, возможно такой же гуру как и ты сам, соответственно, после форума опять открываем доки, пишем тест, охреневаем от знаний гуру на форуме, считаем себя вумным как утка, пишем код, охреневаем от багов, опять цикл доки-форум, узнаем про ub, находим где накосячили, охреневаем от своей тупости.
Примерно так и происходит.
PS. Это С, это хардкор, тут форумы курить не стоит, только серьезные издания и доки, только свои мозги.
Нет, так не сработало, строка не передается, но и проблем не возникает.
А вот так без нуля сработало, но так плывёт конец строки лишними символами.
Если не сработало, значит на вход подавалась пустая строка. Вариант мой правильный и рабочий, ваш нет.
Вы тупо перезаписывайте буфер с большим запасом, естественно, что захватывается и нужная строка.
PS. Это С, это хардкор, тут форумы курить не стоит, только серьезные издания и доки, только свои мозги.
Этот хардкор (wcslen(data)+1) я уже пробовал, и сейчас попробовал ваш вариант, строка не копируется вообще.
Этот хардкор (wcslen(data)+1) я уже пробовал, и сейчас попробовал ваш вариант, строка не копируется вообще.
А что означает второй параметр в функции memspy_s?
А что означает второй параметр в функции memspy_s?
- длина строки out., только +1 символ, который /000 забыли.
Если не сработало, значит на вход подавалась пустая строка. Вариант мой правильный и рабочий, ваш нет.
Вы тупо перезаписывайте буфер с большим запасом, естественно, что захватывается и нужная строка.
Ну как пустая строка? Когда строка из сокета поступает, в других вариантах хоть и кривая, но она не пустая.
Я не говорю что ваш вариант не правильный, но в вашем варианте вы используете массив строки.
В моём случае это указатель
const wchar_t* data = getData();
Сокетная функция возвращает указатель на const wchar_t*
По этому я и грешу на mql баг, потому что уже какие только сишные функции не пробовал, хардкоры с +1 или +2 применял.
Не идёт и всё.
Попробую угадать
- длина строки out., только +1 символ, который /000 забыли.
Если вы имеете ввиду об этом
То строка копируется очень редко, и с большими пропусками по времени.
Этот вариант уже пробовался в самом начале, полистайте пару страниц назад, там я скрины выкладывал.
Вот, такое же поведение как на втором скрине, модеры зачем то имена файлов на кракозябры заменили.
Понимаете, даже вот эта функция wcscpy(out, data); которая автоматически считает длину строки, вызывает такое же поведение, временной пропуск всей строки.