• Можно воспользоваться HINSTANCE exe файла для поиска адреса функции?

    @res2001
    Developer, ex-admin
    NtCreateFile находится в NtDLL.dll
    Думаю, что можно использовать LoadLibrary/GetProcAddress для загрузки библиотеки и адреса функции.
    Ответ написан
    2 комментария
  • Где ошибка в коде, потерялся символ, и не работает free()?

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

    1.Как минимум ошибка при realloc - вы увеличиваете массив только 1 раз, а что если строка попадется очень длинная и нужно будет еще увеличивать буфер?
    Вам нужно в getlen передавать текущий размер буферов и возвращать из нее новый размер, если был realloc.
    Кроме того нужно определить до какого максимального предела вы готовы увеличивать буфера - память не безграничная (даже виртуальная) и если буфера вырастают за допустимый предел - нужно выдать ошибку и завершить программу.

    2. В del_spacetab лишние условия в if:
    if ((*p1)[i] == ' ' || (*p1)[i] == '\t' && (*p1)[i] != '\n')
    Если я все правильно понимаю, то не равенство с '\n' тут излишне, или может быть не хватает скобок. Обычно, если в логическом выражении нужно использовать и || и &&, то для большей читаемости нужно использовать скобки для точного определения того что вы хотите сказать этим выражением.
    Следующим else if - вы обнуляете счетчик на каждом не пробельном символе ...
    Ну и функция del_spacetab не делает то что вы хотите - она просто возвращает количество "пробельных" символов, потом вы при копировании их не отбрасываете.

    3.В функциях, кроме getline, не нужно передавать двойные указатели на буфера - достаточно простых указателей.
    В getline нужны двойные указатели потому что в случае увеличения размера буфера вы должны через них вернуть указатели на новые буфера. В остальных функциях это не требуется.

    PS: Запустите программу под отладчиком и отслеживайте все изменения состояния (переменных) в ручную.
    Ответ написан
  • Каким способом можно оптимально восстановить удаленный документ Word?

    @res2001
    Developer, ex-admin
    Попробуйте восстановить любой утилитой, какую найдете, но шансов не много, т.к. после удаления файла используемые им сектора на HDD при любой записи на диск могут перезаписаться. Чем больше был размер файла, тем меньше шансов на восстановление.
    Чтоб увеличить шансы на восстановление вам нужно было сразу после удаления файла принудительно выключить комп и не включать его больше. HDD переставить на другой компьютер вторым диском и с него пытаться восстанавливать. Загружаться при этом лучше не с установленной на комп винды, а с какого-либо загрузочного носителя. Все это нужно для предотвращения перезаписи секторов, занимаемых файлом.
    Ответ написан
    Комментировать
  • Как подружить python и simulink?

    @res2001
    Developer, ex-admin
    Подготовьте нейросеть на матлабе и используйте в симулинке.
    Ответ написан
  • Зависла подготовка к установке обновлений windows 10. Что делать?

    @res2001
    Developer, ex-admin
    Подготовьте установочную флэшку с последней версией вин10 и установите с нее в режиме обновления.
    Ответ написан
  • Обьясните, что здесь происходит ++ndigi[c-'0']?

    @res2001
    Developer, ex-admin
    Выражение (c-'0') возвращает индекс в массиве nidigi[10].
    В переменной
    char c;
    лежит ASCII код введенного символа (цифры), если из этого кода вычесть ASCII код символа '0', то получите цифру от 0 до 9, что и требуется. Чтоб удостоверится посмотрите таблицу ASCII кодов.
    В массиве nidigi в итоге количество вхождений десятичных цифр во входных данных - гистограмма.
    Ответ написан
    1 комментарий
  • Какой роутер нынче хорош дома для гика?

    @res2001
    Developer, ex-admin
    Как альтернатива микротику - у асуса старшие модели не плохие, прошивки имеются.
    Ответ написан
    Комментировать
  • Как записать звук с микрофона и колонок в один поток?

    @res2001
    Developer, ex-admin
    Не знаю как это в DirectShow, но теоретически просто поэлементно сложить оба потока, при одинаковой частоте дискретизации. Если частота дискретизации различается, нужно привести к одной, а потом все равно сложить.
    Ответ написан
  • Можно ли достать конфиденциальную информацию из ПК зная его IP через интернет?

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

    Если известен e-mail или аккаунт в соц.сетях и т.п. - то уже можно попытаться развести пользователя на установку трояна, который тебе откроет ворота в компьютер. Этот вариант более реальный, обычно так все и происходит. Но от него так же достаточно просто защититься - не разводиться, не ходить по левым ссылкам, не устанавливать левый софт, включить UAC, работать без прав администратора, установить антивирус...
    Если комп используется для работы с финансами или другой чувствительной информацией, то с него вообще нельзя ходить "на лево", только на ограниченный разрешенный список сайтов/хостов в интернете. Этот список нужно явно прописать в фаерволе, остальное нещадно блокировать.
    Ответ написан
    Комментировать
  • Кратковременное зависание ноутбука, в чем причина?

    @res2001
    Developer, ex-admin
    Дефрагментацию откатить не возможно, если что. Только спустя время она самоустранится.
    Вряд ли проблема из-за фрагментации/дефрагментации.
    Проверьте состояние диска - посмотрите системные журналы на предмет дисковых ошибок и SMART статус диска.
    Обновите драйвера особенно на видео, звук, сеть, и все остальное до кучи.
    Остановите антивирус и проверьте проявляется проблема без него или нет.
    Если проблема не решиться ищите виновника тормозов, например попробуйте засечь в менеджере задач кто создает нагрузку, в тот момент, когда у вас проявляется проблема.
    Или методом исключения - удаляйте по одному установленный софт, начинайте с последнего установленного ПО и т.д. пока не останется чистая винда :-)
    Ответ написан
    Комментировать
  • Определение длины какой угодно строки, без заранее опредленного размера массива?

    @res2001
    Developer, ex-admin
    Выделяете динамически первоначальный размер памяти, читаете в него заданное количество символов (по размеру буфера), если конца строки не было, делаете resize буферу, дочитываете, проверяете конец строки и т.д.
    Можно читать по 1 символу и сразу его проверять на конец строки, но память при этом так же нужно увеличивать при необходимости. Медленнее скорее всего не будет, т.к. стандартная библиотека делает буферизацию по умолчанию, т.е. фактически все равно будет читаться не по 1 байту.
    Ответ написан
    Комментировать
  • Как заставить std::array различать родителя и наследника?

    @res2001
    Developer, ex-admin
    Танцы с virtual. Для того они и придуманы.
    Тут еще вопрос в том как именно вы помещаете объекты в std::array и какие именно это объекты. В вашем случае вам нужно помещать в массив либо ссылки, либо указатели (умные), иначе рискуете словить проблемы.
    Ответ написан
    Комментировать
  • Инструмент для синхронизации учетных записей ubuntu?

    @res2001
    Developer, ex-admin
    Настройте авторизацию через LDAP или керберос или через оба вместе, синхронизировать - гиблое занятие.
    Ответ написан
    Комментировать
  • Какую консоль выбрать?

    @res2001
    Developer, ex-admin
    Использую git, установленный в окружение msys2/mingw. Работает и в cmd и в bash.
    Ответ написан
    Комментировать
  • Как итерируется ranged for?

    @res2001
    Developer, ex-admin
    Итераторы - это абстракция созданная для того что бы можно было один и тот же подход применять для обхода принципиально разных контейнеров.
    Реализация итератора - это класс реализующий определенный интерфейс, как вы и написали. Внутри класса реализуйте как хотите, сохраняйте состояния, ссылки, счетчики в приватных членах данных класса итератора и т.д. и т.п. begin с end должны возвращать ссылку на соответствующий итератор. begin и end не входят в интерфейс итератора.
    Учите матчасть.
    Ответ написан
  • Как windows выделяет память для процессов?

    @res2001
    Developer, ex-admin
    Виртуальная память реализуется аппаратно-программным способом, т.е. без поддержки процессора не обойтись, поэтому ОС тут вовсе не "законодатели мод", а всего лишь используют подход предложенный разработчиками железа. Конечно, писатели осей могут то же поучаствовать в процессе проектирования железа и часто так и происходит, даже можно предположить, что сама виртуальная память появилась именно из-за хотелок разработчиков ОС. Этот подход принципиально одинаков что в винде что в линуксе для интеловских процов, т.к. диктуется спецификацией процессора, естественно разные реализации, но делают они одно и то же.
    Поэтому смело можете читать по этому поводу литературу о том как работает линукс с виртуальной памятью (если найдете), в общих чертах винда работает так же.
    Так же можно читать интеловскую документацию.
    Но, на самом деле, если вы не собираетесь разрабатывать ядра ОС, достаточно понимать в общих чертах как это работает.

    Вообще Рихтер хорошо пишет, попробуйте перечитать :-)

    Виртуальная память не "взаимодействует с ОЗУ" - ОЗУ неотъемлемая часть виртуальной памяти.
    Ответ написан
    2 комментария
  • Пишем java код в командной строке?

    @res2001
    Developer, ex-admin
    1.Батником вы можете создать текстовый файл с JAVA кодом:
    echo Это JAVA код>>file.txt
    Каждую строчку ява кода предваряйте командой echo и в конце операторами перенаправления в файл.

    2.Как откомпилировать созданный фай - не в курсе, явой не занимался, думаю что в JAVA SDK есть компилятор командной строки, изучайте его параметры и просто добавьте соответствующую команду в конце батника. Но JAVA SDK не входит в комплект JAVA JRE, который обычно стоит у пользователей компа.

    3.Для автозапуска - поместить в автозагрузку. В винде несколько вариантов автозагрузки, гуглите и смотрите, что вам больше подходит.
    Самый простой способ - поместить батник в каталог автозагрузки текущего пользователя, но возможно вам не это нужно.

    4.Про закрытие - видимо вам нужно предотвратить не закрытие батника, а закрытие выполняемого java кода. В любом случае это достаточно не тривиально и любой способ можно так или иначе обойти.
    Самый простой вариант - стартовать второй процесс, который будет следить запущен ли первый и если нет, то запускать. Но гарантии нет, т.к. сначала могут прибить второй, а потом первый.
    Возможно вас удовлетворит вариант, например, с сокрытием окна выполнения батника, но стандартного способа не существует, есть не стандартные варианты типа утилит cmdow, nircmd - они это умеют (но, например cmdow антивирусы не любят, хотя это и не вирус), так же можно скрыть окно с помощью простого скрипта на vbs/js - гуглите.

    5.На счет запуска из-под администратора - есть команда runas, но она спрашивает пароль, который надо вводить руками. Есть сторонние варианты подобной утилиты - гуглите.

    PS: Ваши хотелки в совокупности достаточно подозрительно выглядят. И они не решаются легко.
    Ответ написан
    1 комментарий
  • Как сделать выход из цикла ввода строк в vector?

    @res2001
    Developer, ex-admin
    Оператор break.
    Ответ написан
    Комментировать
  • Как работать с устройствами которым не присваивается буква (Например Apple Iphone - при подсоединении через шнур)?

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

    Еще есть вариант использовать PowerShell, на сколько знаю там можно организовать копирование например с iPhone, возможно и ваш девайс можно раскрутить аналогичным образом.

    PS: на сколько помню сканеры штрих кодов раньше ничего не позволяли в себя записывать, разве что сменить прошивку с помощью спец.утилит.
    Ответ написан
    3 комментария
  • Как Telegram, Skype, etc. связывают 2 клиента за NAT p2p?

    @res2001
    Developer, ex-admin
    STUN видимо. Это то же "хак" для обхода NATа. Есть еще вариант с UPnP, но по моему его мало кто использует.
    Ответ написан
    Комментировать