• Почему MinGW не видит winapi функцию?

    @res2001
    Developer, ex-admin
    С чего вы это взяли что компилятор не видит функцию?
    Если бы это было так, то ошибка была бы что-типа "undefined refference" или "implicit declaration".
    У вас похоже ошибка где-то выше по коду, а в этом месте компилятор просто понял, что тут ошибка.
    Ответ написан
  • Как получить текущий путь в BAT файле?

    @res2001
    Developer, ex-admin
    Именно так и узнавать текущий путь: %CD%
    Это не важно где лежит батник, т.к. исполняется не сам батник, а cmd.exe. Т.е. когда вы 2ПКМите на батнике, лежащем на раб.столе запускается команда: cmd.exe /c c:\users\user\Desktop\file.bat
    При этом путь где лежит батник никакого отношения к текущему пути не имеет. cmd.exe обычно запускается с текущим каталогом %SystemRoot%\System32.
    Чтоб перейти в каталог, где лежит батник, используйте команду: cd /d "%~dp0"
    Пути можно получать из параметров батника, указанным способом, то же самое можно делать для переменных цикла, и параметров процедур. Список доступных модификаторов (буквы после %~ доступны в описании команд call и for.
    Ответ написан
    1 комментарий
  • В чём отличие git bash и просто bash?

    @res2001
    Developer, ex-admin
    Это обычный bash, в комплекте с которым идут утилиты необходимые для работы gitа, в т.ч. и сам консольный git. Ничего лишнего.
    Там легко может не быть каких-то утилит, которые в bashe под linux есть. Они не являются частью bash или git, но являются частью linux.
    Ответ написан
    3 комментария
  • Как исправить ошибку LNK2019?

    @res2001
    Developer, ex-admin
    В интернетах пишут, что надо добавить еще opengl32.lib
    Ответ написан
  • Папка " Пользователи ", ее возможно перенести из диска С на диск Е?

    @res2001
    Developer, ex-admin
    Можно перенести и на рабочей системе. Но есть нюанс - в папке содержатся не только профили реальных пользователей, но и All Users, Default, ... Эти специальные профили, лучше оставить на своих местах.
    Описывал ручной вариант переноса тут не однократно, вот мой последний ответ по этому поводу: https://qna.habr.com/answer?answer_id=2161662#answ...
    Там внутри есть ссылки на более полные ответы.
    Ответ написан
    Комментировать
  • Есть ли смысл в уточнении типов данных чисел? И что это даст?

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

    @res2001
    Developer, ex-admin
    malloc не зануляет выделенную память. После выделения mallocом в выделенной памяти содержится мусор.
    А у тебя в ht_hasItem определение занят ли элемент идет через сравнение с NULL. Когда выделил array надо обнулить массив memsetом или использовать calloc для выделения.
    Ответ написан
    2 комментария
  • Какая версия linux оптимальна для обучения?

    @res2001
    Developer, ex-admin
    Kentavr16, Ставь arch или gentoo - будет максимальное погружение в трудности практически с первого шага. Комьюнити в арче большое и мануалов то же хватает, в т.ч. и на русском. Будет трудно, но зато можно довольно быстро погрузиться в линукс.
    Ubuntu - для домохозяек - многое работает из коробки и много чем можно управлять из граф.оболочки. Задачи для обучения придется придумывать самому :)

    Вообще выбор дистрибутива не принципиален, на самом деле.
    Но есть некоторые нюансы.
    Сейчас во многих дистрибутивах системным менеджером является systemd. Но могут быть и другие варианты: systemv, upstart, ...
    В дистрах порожденных от debian пакетный менеджер обычно apt.
    В дистрибутивах от redhat - rpm.
    В arch - pacman.
    В gentoo - софт собирается из исходников, похоже на систему портов во FreeBSD.

    От системного менеджера зависит способ как вы будете управлять службами.
    От пакетного менеджера - как вы будете устанавливать софт и обновлять систему.
    Это достаточно важные вещи в администрировании. Обычно к чему сразу привыкнешь тот вариант и будешь использовать в дальнейшем. Если пакетные менеджеры все более-менее похожи друг на друга, то системные менеджеры могут отличаться своими подходами.
    Графическая оболочка не важна, т.к. любой линукс позволяет ее менять после установки. А кроме того очень многие вещи в линуксе администрируются правкой конфигов, а не тыканьем кнопок.
    Поменять системный менеджер уже не так просто и это тянет на собственный дистрибутив.

    Еще один момент, отличающий разные дистрибутивы - политика обновлений. В некоторых дистрах перед релизом проходит период тестирования и т.п. (debian, ubuntu lts), в других - выдают на гора все самое горячее, не парясь о последствиях для пользователей (arch), есть и промежуточные варианты.

    Лично я использую убунту, т.к. изначально ее ставил сразу для работы, а не для обучения. И лишние проблемы были ни к чему. Обучался в процессе. Уже можно было бы и поменять на что-то, но сейчас не вижу в этом смысла.
    Ответ написан
    9 комментариев
  • Как можно задать перенаправление папки ProgramData при работе с RDS?

    @res2001
    Developer, ex-admin
    Путь к ProgramData задается в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
    Но менять расположение в работающей винде не стоит, т.к. там полно "внутренних" ссылок, а так же на ProgramData есть ссылки в других местах. При переносе большая часть ссылок будут недействительны. Трудно даже предположить, что отвалится после подобного действия.
    Вижу единственный рабочий вариант - изменение расположения ProgramData в процессе установки винды с помощью файла ответов, может есть и другие варианты задать новое расположение папки при установке.
    Но, на сколько я понимаю, перенос ProgramData вам ничего не дасть, т.к. эта папка одна для всех пользователей, она и в новом месте будет такой же.

    По AppData. Перенесите целиком профиль пользователя. Вместе с ним перенесется и пользовательский AppData. Ручной перенос профиля описывал тут несколько раз.
    Как вариант - перенести конкретную папку из AppData и создать на прежнем месте ссылку в новое местоположение.
    Но, пользовательская AppData находится в пользовательском профиле и она уже изолирована от других пользователей. Так что о какой дополнительной изоляции идет речь.

    И еще. Динамические библиотеки (на сколько я понял речь идет о такой библиотеке) открываются в режиме многопользовательского доступа. Т.е. несколько программ могут легко использовать одну и ту же библиотеку. Это так работает всегда на системном уровне и изменить это нельзя.
    Это значит, что внутри библиотеки блокируется какой-то другой ресурс, который становится не доступным другим пользователям. Вам надо выяснить у разработчика программы что там блокируется и как с этим бороться.
    Ответ написан
  • Будет ли скомпилированный код C++ работать на всех архитектурах процессора?

    @res2001
    Developer, ex-admin
    Даже бинарник для х64 не будет работать под х32, что уж говорить о принципиально разных архитектурах.
    В исполняемом файле содержатся машинные команды для конкретной архитектуры процессора.
    Для другой архитектуры нужен другой исполняемый файл.
    То же самое актуально и для разных ОС (бинарники для линукс и винды не совместимы). Но, обычно, есть варианты запустить бинарник от другой ОС - виртуализация, wine в линукс, WSL в винде.

    Более того, например, если у вас приложение х64 и вы используете какую-то специфическую фичу процессора, которая есть только в определенных моделях процессора, то приложение будет корректно работать только на процессорах поддерживающих эту фичу. Если нужно, в приложении можно предусмотреть проверку процессора и если фича не поддерживается использовать какую-то универсальную реализацию.
    Ответ написан
    Комментировать
  • Как структурировать код?

    @res2001
    Developer, ex-admin
    Одинаковые участки кода надо выделить в отдельные функции, передавать в функции нужные аргументы и возвращать результаты. Частично это у вас уже сделано с f21, но результат можно улучшить.
    Ответ написан
    Комментировать
  • Как или где онлайн можно научиться кодить игры правильно (мультитрединг, структуирование итд)?

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

    По видео курсам:
    По параллельному программированию есть хорошие лекции на https://compscicenter.ru/ лекции ведет Евгений Калишенко.
    Хорошие лекции на эту и другие темы связанные с программированием выкладывает канал "Лекторий ФПМИ" на ютубе.
    В перечисленных вопросах не стоит акцентировать внимание на разработке игр, т.к. все это применяется повсеместно в проектах любой направленности.

    К перечисленным темам могу добавить еще несколько, на которые стоит потратить свое время: сетевое программирование, асинхронное программирование, использование СУБД.
    Ответ написан
    4 комментария
  • Работа конвейера в windows с python?

    @res2001
    Developer, ex-admin
    Вместо входного файла нужно использовать stdin и читать данные из него.
    Ответ написан
    Комментировать
  • Безопасен ли домашний проброс портов?

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

    @res2001
    Developer, ex-admin
    Запустите любое приложение из-под этого пользователя.
    Ответ написан
    Комментировать
  • С чего начать изучение С++?

    @res2001
    Developer, ex-admin
    Подойдет любой толстый учебник по плюсам. Но смотрите, чтоб в книге был описан хотя бы С++11.
    Не все книги из того списка переиздавались после 2011 года, а значит в них не учтены изменения современных стандартов.
    Знаю, что Лафоре из списка переиздавался в 2018, но стоит посмотреть какие изменения были в этом издании.

    В принципе база осталась той же, что и до С++11, но в этом стандарте добавились серьезные улучшения, желательно изучать уже с этими нововведениями. Уже есть и С++14/17/20. 14 - это исправление ошибок 11, ничего кардинально нового там нет. В 17 и 20 добавились некоторые фичи, о них можно почитать в интернете, учебников, учитывающих эти стандарты, по моему еще нет.
    Ответ написан
    Комментировать
  • Стоит ли проходить курс по С++ на яндекс практикуме?

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

    @res2001
    Developer, ex-admin
    Хотелось бы больше конкретики, т.к. чтение у вас в двух функциях CreatMatr() и ReadMatrix().
    В CreatMatr() вы не освобождаете динамически выделенную память - это утечка. Используйте вместо "сырого" массива вектор.
    Так же не понятно, зачем вы вызываете CreatMatr() 3 раза?

    Предположу, что проблема в том, что в CreatMatr() вы не возвращаете вызывающему коду считанные значения n, m, l, поэтому в main эти значения никак не изменяются и равны 1.
    Ответ написан
    5 комментариев
  • Как выполнить git clone если в адресе есть пробел?

    @res2001
    Developer, ex-admin
    Удвойте знак процента - процент служебный символ, его надо экранировать
    Ответ написан
    Комментировать
  • Обязательно ли кабель должен быть проведён к роутеру через модем или использование модема необязательно?

    @res2001
    Developer, ex-admin
    Все зависит от того какой кабель. В роутере обычно разъемы Ethernet (8 или 4 жильный кабель с разъемом RJ45) и в них можно сунуть только Ethernet (ни оптику, ни телефонную линию, и т.д.).
    Если в квартиру заходит что-то отличное от Ethernet, то требуется устройство, которое будет преобразовывать один тип сигнала в другой (например оптику в Ethernet, или DSL в ethernet), отсюда появляются дополнительные устройства на входе в роутер. Эти дополнительные устройства не всегда называются модемами, для оптики, например, устройство имеет более общее название медиа конвертер (преобразователь интерфейсов). Модем это то же медиа конвертер.
    Бывают модели роутеров, которые имеют внешний порт не Ethernet (оптика, DSL). Такие роутеры, как правило, используются именно там где входящая линия именно этого типа. Тогда, конечно, дополнительное устройство не требуется.
    Так же часто на входе уже имеется Ethernet, тогда такой кабель можно напрямую втыкать в роутер, без посредников.
    Ответ написан
    Комментировать