Задать вопрос
  • Как сделать отладку по исходному коду, а не дизассемблеру в Qt Creator на linux?

    @res2001
    Developer, ex-admin
    Нужно собрать код с отладочной информацией. Для gcc ключ -g в опциях компилятора.
    На сколько я помню, в pro файле нужно задать:
    BUILD_FLAG=debug
    Тогда qmake включит отладочную информацию при сборке. Могу ошибаться, давно не использовал Qt и qmake.

    Если показанная точка - это не ваш код, а находится, например, внутри библиотеки, которую использует ваш код, то нужно эту библиотеку собрать с отладочной информацией. Но в этом случае, чаще всего ошибка все равно в вашем коде, так что возможно это и не потребуется.
    Ответ написан
    8 комментариев
  • VPN маршрутизация на Windows возможно ли?

    @res2001
    Developer, ex-admin
    Зачем вам server-bridge? Ниразу не видел openvpn работающий в этом режиме. Ну может оно и работает ...
    Режим topology subnet + server наше все.
    В общем когда ВПН клиент подключится к серверу останется только правильно настроить таблицы маршрутизации на ВСЕХ участниках обмена.
    Ответ написан
  • Как встроить переменные в sh скрипт?

    @res2001
    Developer, ex-admin
    Для обращения к переменным используйте такой синтаксис:
    ${FT_LINE1}
    Ответ написан
    1 комментарий
  • 1C как скрыть окно?

    @res2001
    Developer, ex-admin
    Самый простой способ - запускать cmd из простейшего скрипта на js/vbs. Там есть возможность запускать задачи в скрытом окне. Скрипт легко гуглиться, да и здесь уже пробегал не однократно как решение подобных задач.
    Ответ написан
  • Как узнать, что за входящий параметр в функции, в чужом коде?

    @res2001
    Developer, ex-admin
    Тут dt - объект типа Date, учитывая как она используется в коде.
    А вообще смотрите как вызывается интересующая вас функция.
    Ответ написан
    2 комментария
  • Что делать, если стала лагать Windows 10?

    @res2001
    Developer, ex-admin
    Илья Борисенко, Видео тормозит - поставить свежие кодеки (K-Lite и т.п.).
    Посмотреть все ли драйвера стоят (нет неопознанных устройств в менеджере устройств). Для видео поставить родные драйвера с сайта производителя, а не те что винда установила.
    Посмотрить журналы винды, если что-то системное не работает, то в журнале должны быть сообщения. По сообщению об ошибке можно понять в каком компоненте винды проблема. Если есть проблемы с диском, то в журнале то же будут ошибки.
    Дальше смотрим диспетчер задач на закладке подробно, сортируем по CPU и смотрим какой процесс жрет ЦП. Если там аномальная загрузка - разбираемся с этим процессом.

    В общем, нужно понять что грузит систему и разбираться с причиной тормозов.
    Ответ написан
    4 комментария
  • Коллеги, как Вы выходите из положения, когда нужно постоянно приводить ПК в исходное состояние?

    @res2001
    Developer, ex-admin
    1.Можно использовать точки восстановления винды. Но надо проработать вариант восстановления пользовательских данных.
    2.Акронисом делаем зону безопасности и включаем опцию "восстановление при загрузке". В этом случае в загрузочном меню появляется возможность запустить восстановление. Восстановление проходит в течение 5 минут. Никаких загрузочных носителей и т.п.
    Ответ написан
    Комментировать
  • Клиент-серверное приложение?

    @res2001
    Developer, ex-admin
    Прежде чем писать сетевое приложение вы бы немного почитали про то как там все работает, какие могут быть трудности и как их можно обходить.
    Если вы до сих пор этого не знаете, то сервер на одном слушающем сокете может работать с кучей клиентов. Если вы используете TCP для обмена, то на каждое соединение с новым клиентом создается новый сокет полноценный сокет. Вы можете этот сокет передать процессу обработчику. Тогда вам не понадобится куча слушающих сокетов.

    Не стоит запускать на каждого клиента отдельный вычислительный процесс, если вычисления достаточно ресурсоемкие вы парой десятков клиентов обеспечите DDoS на свой сервер, т.е. ваш сервер может просто умрететь под нагрузкой.
    Ответ написан
  • В IDE qt creater выходят ошибки при запуске кода, хотя в DEV-C++ код нормально компилируется. Как исправить?

    @res2001
    Developer, ex-admin
    Есть ошибки/предупреждения компилятора, а есть ошибки/предупреждения qtcreator.
    Просмотрите закладку "Вывод сборки", там ошибки и предупреждения компилятора компилирующего вашу программу с заданными вами опциями.
    qtcreator для анализа кода в процессе его редактирования скармливает код clangу (его библиотеки идут вместе с qtcretor) с некоторым набором опций. Этот набор опций скорее всего не совпадает с тем набором, который используете вы в проекте. А так же вы скорее всего используете другой компилятор. Поэтому часто предупреждения выдаваемые qtcreator не совпадают с предупреждениями компилятора, собирающего программу. В настройках qtcreator можно отрегулировать опции, которые используются для предварительного анализа кода.
    После того как вы собрали проект ошибки/предупреждения реального компилятора и qtcreator перемешиваются.

    Состав предупреждений может сильно отличаться в зависимости от используемых опций при сборке проекта. В разных IDE и проектах используются разные опции сборки.

    Часто рекомендуют включать максимальный уровень предупреждений и заморочиться с исправлением кода, чтоб предупреждений не было. Как правило предупреждения компилятора говорят если не об ошибках, то по крайней мере о "скользких" местах в коде.
    В gcc включить повышенный уровень предупреждений можно параметрами -Wall -Wextra -pedantic и задать используемый стандарт языка с помощью опции --std=xxx
    Ответ написан
    1 комментарий
  • OpenVPN не работает по TCP?

    @res2001
    Developer, ex-admin
    Как минимум нужно увидеть, что openvpn пишет в журнал на счет ошибки: /var/log/openvpn/openvpn.log
    По вашему описанию нет возможности это узнать.

    Нет никакой своей версии TCP. На сервере openvpn выставляете tcp-server, на клиенте tcp-client. Хотя должно работать и просто tcp в обоих случаях. Когда я последний раз настраивал TCP для openvpn, указывал просто tcp и все работало. Так же можно использовать tcp4 или tcp6, если нужно работать только с конкретной версией протокола. Аналогично и для udp.
    Почему вы используете интерфейс tap, вместо tun? Есть какие-то причины? Обычно используют tun.
    Ответ написан
    6 комментариев
  • Как мне правильно соединить три строки и сделать системный вызов?

    @res2001
    Developer, ex-admin
    Когда делаете memcpy указатель на result надо смещать на размер предыдущей скопированной строки. Сейчас вы просто копируете следующую строку, затирая предыдущее копирование.
    memcpy(result + strlen(part1), filenames, strlen(filenames));

    strcat должен нормально отработать, он делает по сути то же самое.
    При копировании строк лучше использовать strcpy (или strncpy), она копирует и завершающий 0. memcpy предназначена для копирования памяти произвольного содержимого.
    Ответ написан
  • Как дописать скрипт bat файла?

    @res2001
    Developer, ex-admin
    Ясно, что forfiles для ваших целей не подойдет.
    Можно воспользоваться возможностью команды dir сортировать файлы при выводе. Пример можете посмотреть в вопросе, который был тут на днях:
    Вам нужно делать обход по оригинальным файлам (не копиям), далее с помощью вышеупомянутого dir получать список "оригинальный файл + его копии", отсортированный по убыванию даты изменения, оставлять первые 3 файла, остальные удалять.

    Если хотите подробностей, то опишите как и когда у вас создаются копии файлов и как формируются имена копий. Где лежат копии и оригинальные файлы?
    И вообще хотелось бы понять, что вы пытаетесь сделать этим скриптом. Видимо это что-то типа системы циклического бэкапа исходных текстов с сохранением нескольких последних копий. Почему не использовать для этого git?
    Ответ написан
    2 комментария
  • Что делать, если Windows 10 работает ТОЛЬКО в безопасном режиме?

    @res2001
    Developer, ex-admin
    Сделайте бэкап всего что нужно.
    Смотрите журнал системы, какие там есть ошибки. Возможно какая-то ошибка наведет вас на причину такого поведения.
    Сносите недавно установленные приложения/драйвера. Судя по тому, что в безопасном режиме с поддержкой сети сисетма не грузится, причина может быть в кривых драйверах сетевого адаптера. Но не обязательно.
    Если ничего не помогает - переустанавливайте винду.
    Я бы не тратил много времени на поиск причины и восстановление работоспособности, т.к. не факт что удастся вывести винду из каматоза. Отведите на эти мероприятия часа 2-3, если прогресса не будет - переустанавливайте без раздумий.
    Ответ написан
    2 комментария
  • Правильно ли реализован lock-free битовый массив?

    @res2001
    Developer, ex-admin
    Какого-то специфического lock-free алгоритма у вас в коде нет.
    Достоточно для чтеня/записи использовать атомик операции и оно будет нормально работать, без гонки данных.
    Ответ написан
    Комментировать
  • Не вижу сеть за сервером openvpn?

    @res2001
    Developer, ex-admin
    Да, конфиг вроде у вас правильный.
    Для проверки можете на клиенте, после подключения к ВПН посмотреть таблицу маршрутизации, там должен быть маршрут до нужной сети через сервер ВПН.

    Но этого не достаточно - компы в сети за сервером ВПН должны знать маршрут до компов в ВПН сети. Если ВПН сервер не является шлюзом по умолчанию для компов в сети, то этот маршрут надо добавлять на каждый комп (которому нужно взаимодействовать с клиентами ВПН) вручную (или любым доступным способом, например через опции DHCP и т.п.).
    Ответ написан
  • Почему не выводятся русские символы?

    @res2001
    Developer, ex-admin
    Видимо речь идет о Винде и проекте в MSVS.
    Конретно описанная проблема, видимо, в том, что программа скомпилирована с поддержкой UTF8. Попробуйте в настройках проетка выключить поддержку UTF8 и пересобрать программу.
    Но в винде вывод русских букв в консоль достаточно не тривиальная задача. Тут эта тема уже много раз обсуждалась. Полезно хотя бы иметь представление о вопросе. Можете начать отсюда и прочитайте комменты к статье.
    Ответ написан
    Комментировать
  • Как обработать ответ командной строки стандартными средствами?

    @res2001
    Developer, ex-admin
    Обычно для обработки вывода команд в батнике загоняют команду в цикл вида:
    for /f "tokens=xxx delims=yyy" %%a in ('тут нужная команда') do (
       echo %%a
    )

    и внутри цикла получают доступ построчно к выводу команды.
    Разбивать строки вывода на лексемы, устанавливать разделители лексем, пропускать строки в начале можно с помощью параметров цикла (указаны в кавычках).
    Для справки смотрите for /?
    Ответ написан
    Комментировать
  • Как перезапустить службу от имени администратора?

    @res2001
    Developer, ex-admin
    Простого способа повышения привилегий нет.
    Есть варианты из разряда "трюков", в которых используется внедренный в батник скрипт на vbs/js: https://safezone.cc/threads/kak-zapustit-programmu...
    Ответ написан
    Комментировать
  • Как подставить в параметры команды имя текущего каталога?

    @res2001
    Developer, ex-admin
    Сдеалйте простейший батник, в котором будет одна ваша команда. В ТС вызывайте батник с первым параметром %P.
    В батнике получить путь к каталогу из переданного параметра можно с помощью записи:
    %~dp1
    %~n1 - имя файла без расширения
    %~x1 - расширение файла
    %~f1 - полный путь к файлу
    Ответ написан
    7 комментариев
  • Какую использовать среду разработки C под Windows?

    @res2001
    Developer, ex-admin
    Под винду лучше всего MSVS и микросовтовский компилятор, но, как верно заметил Дмитрий Золотарев, у микрософтовского компилятора проблемы с поддержкой современных стандартов. Точнее Микросовт в принципе не заявлял о поддержке стандартов Си (может быть ANSI C, но я не уверен).
    В принципе, если вы пишите исключительно под винду, то на это можно не обращать внимания - поддержки нет только для каких-то вещей, которые микрософт считает не нужным поддерживать, например VLA, многопоточность. Большая часть Сишного кода вполне нормально собирается микросовтовским компилятором.
    Так же можно использовать IDE qtcreator. Компилятором к нему может быть тот же микросовтоский из состава MSVS или mingw. В этом случае я бы все таки так же использовал компилятор от микрософта, т.к. он дает более компактный и быстрый код, имхо. Микрософтовский компиялтор, кстати, можно поставить отдельно, без студии, называется Microsoft Build Tools ищите на сайте микрософта.
    Ответ написан
    Комментировать