• Связь между cpp файлами? Как можно получить и записать значение переменной из одного cpp в другой?

    @res2001
    Developer, ex-admin
    Возвращайте значения из одной функции и передавайте их в другую как параметры.
    Вернуть 2 значения можно в структуре или с помощью входных параметров ссылок. Пример.
    void writeCfgFile(int & directX, int & analogX){
           analogX =6;
           discretX=8;
    }
    void writeBinaryFile(int directX, int analogX) {
    }
    main() {
    int analog, direct;
    writeCfgFile(direct, analog);
    writeBinaryFile(direct, analog);
    }

    Когда нужно возвращать много значений, то их объединяют в структуру и точно таким же образом заполняют структуру.
    Глобальные переменные - это, конечно, просто и работает, но это не правильный подход.
    Ответ написан
    Комментировать
  • Скопировать данные с флешки по сети?

    @res2001
    Developer, ex-admin
    По моему cmd не работает с UNC путями. Можно либо подключить сетевой диск с помощью net use, после копирования отключить. Либо сделать это на PowerShell.
    В cmd узнать что в компе есть флэшка можно, например, анализируя вывод wmic value.
    wmic умеет работать с удаленными компами.
    Ответ написан
  • Как реализовать права доступа к папкам и файлам в windows?

    @res2001
    Developer, ex-admin
    Это абсолютно стандартный вариант работы в корпоративной сети.
    По уму поднять АД и чтоб на каждом компе пользователи работали от своего (уникального) имени. Можно и без АД, но пользователей все равно необходимо заводить уникальных на каждом компе. Кроме того в этом случае нужно будет всех пользователей с компов студентов продублировать на компьютере преподавателя с тем же паролем.
    Далее:
    1.В расшаренном каталоге создаете отдельные папки для каждого пользователя.
    2.Для каждой пользовательской папки:
    2.1.Отменяете наследование прав.
    2.2.Даете полные права для преподавателя, администратора и пользователя данной папки.
    2.3.Остальных пользователей и группы удаляете (можно оставить Систему).
    3.Все
    В итоге каждый студент сможет работать только со своей папкой, преподаватель будет видеть все папки.

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

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

    @res2001
    Developer, ex-admin
    При выдачи команды gcc именно это и должно происходить. Компиляция начнется только если вы в параметрах команды укажете что именно вы хотите откомпилировать (остальное опционально).
    Ответ написан
    Комментировать
  • Можно ли настроить прокси сервер на своем пк с win 7 или роутере с белым ip (или "Как сделать все сервисы для instagram c одного адреса)?

    @res2001
    Developer, ex-admin
    Т.к. нет возможности все ПО настроить на хождение через прокси, то вместо него нужно использовать ВПН. Вариант с ВПН не зависит от поддержки ПО, он работает на более низком уровне. Нужен вариант ВПН, который бы поддерживался всеми платформами на которых вы работаете, например OpenVPN.
    В остальном схему вы правильно описали.
    Было бы удобнее арендовать для ВПН сервера VPS/VDS. В этом случае на ВПН сервере нужно будет поднимать NAT, но это не является проблемой.
    Ответ написан
    Комментировать
  • Не поздно ли в ВУЗ после колледжа?

    @res2001
    Developer, ex-admin
    Думаю вопрос нужно ставить так: кто будет вас содержать до 30 лет?
    Если родители чадо не бросят - учитесь очно в вузе, но рискуете так присосаться к родителям (привыкнуть к халяве), что до пенсии будете с ними жить.
    Ваш вариант, имхо, идти работать после колледжа, после того как найдете нормальный стабильный заработок, на который сможете самостоятельно жить, можно пойти в вуз заочно, если к тому времени еще будет желание.
    Нормально учиться на очном/вечернем и работать - очень сложно, не многие выдерживают этот режим в течение 3-5 лет.
    Часто люди приходят к выводу, что вышка не нужна вовсе.
    Ответ написан
    5 комментариев
  • Можно ли написать хранимую процедуру для SQL на другом языке (Например С++)?

    @res2001
    Developer, ex-admin
    На сколько я знаю, непосредственно хранимую процедуру написать не на SQL нельзя.
    Можно написать UDF (user defined function), которые можно вызывать из SQL запросов.
    https://dev.mysql.com/doc/refman/8.0/en/adding-udf.html
    Ответ написан
    Комментировать
  • Как сделать шлюзом роутера ноутбук для всех кто подключиться к моей сети вайфай?

    @res2001
    Developer, ex-admin
    Шлюзом можно сделать, достаточно раздавать IP своего ноута по DHCP как адрес шлюза по умолчанию. При этом ноуту нужно назначить статический IP и на самом ноуте прописать шлюзом по умолчанию правильный шлюз (это видимо будет сам роутер).
    На счет смотреть ... открытый трафик можно смотреть любым сниффером.
    Шифрованный сложнее. Для расшифровки HTTPS нужно ставить прозрачный прокси и настраивать подмену сертификата, решение не однозначное и в принципе пользователь может увидеть подмену и заподозрить не ладное. Не уверен, что под винду есть бесплатные решения, которые это умеют. В любом случае - это не очень просто. Решения под винду, которые я видел - все стоили денег. Универсального решения в этом случае нет, допустим для https есть варианты, а тот же openvpn, по моему без вариантов. Любой другой, не HTTPS, протокол использующий шифрование потребует своего персонального решения.
    Ответ написан
    Комментировать
  • Что случилось Windows?

    @res2001
    Developer, ex-admin
    Возможно по какой-то причине не доступен каталог с пользовательским профилем.
    Обычно он находится в c:\Users\<имя пользователя>
    В случае не доступности пользовательского профиля винда генерирует временный профиль с настройками по умолчанию. Соответственно никаких ваших ярлыков на раб.столе не будет, приложения, установленные в профиль так же будут не доступны.
    Временный профиль, на сколько я помню, генерируется где-то в c:\windows\system32 (если не доступен c:\users).
    Проверить расположение текущего профиля можно в cmd.exe введя команду:
    set USERPROFILE

    Если у вас действительно эта ситуация, то нужно разбираться почему ваш рабочий профиль не доступен.
    Варианты:
    1.профиль находится не в каталоге по умолчанию, а перенесен на другой диск/раздел и этот диск/раздел в данный момент не доступен.
    2.в организациях часто используют сетевые профили, в этом случае может быть не доступен сервер, где лежат профили пользователей.
    3.все в том же духе

    Другой вариант - рушится пользовательский реестр. Встречал подобное несколько раз. Эта проблема всегда по разному проявляется, в зависимости от того что именно в реестре ломается.
    В этом случае лучше всего создать нового пользователя в системе и работать из под него, данные перенести из старого профиля в новый, старого пользователя удалить.
    Ответ написан
    1 комментарий
  • Почему буфер приема WinSock заполняется мусором?

    @res2001
    Developer, ex-admin
    А если я смотрю strlen(recvbuf) то получаю 16. Откуда берется такой хвост?

    В recvbuf вы получаете не с-строку, а массив байт, применять строковые функции к массиву байт бессмысленно.
    Отличие с-строки от массива в том, что строка оканчивается завершающим нулем, а в массиве байт вы должны знать длину массива. В с-строке символ 0 не может быть в теле самой строки, только в качестве терминального символа, в массиве байт 0 - такой же равноправный элемент данных, как и все остальные, может быть в любом месте массива или не быть вовсе.
    Вам еще повезло, что выдает 16 байт, вместо 4, вполне могло бы сложиться так, что нулевого байта не было бы на достаточно продолжительном участке памяти, тогда был бы просто вылет из программы или какие-либо трудно диагностируемые глюки.
    Ответ написан
    5 комментариев
  • OneToOne (JOIN) vs лишнее поле у сущности?

    @res2001
    Developer, ex-admin
    Дублировать данные стоит только если есть острая необходимость. Например, высокая нагрузка на БД. В остальных случаях нормализуйте базу.
    Ответ написан
    4 комментария
  • Почему не обрабатывается переменная времени в batch-файле?

    @res2001
    Developer, ex-admin
    1. На счет символов % Moskus правильно сказал, их нужно удваивать в батниках, чтоб они сохранились в параметре программы. Плюсую. Думаю, что проблема именно в этом.
    2. Батники всегда исполняются в среде cmd. Собственно это cmd.exe является интерпретатором командных файлов (.bat и .cmd). Даже когда вы в проводнике запускаете батник двойным ЛКМом, проводник вызывает cmd.exe для исполнения скрипта. В этом легко убедится с помощью менеджера задач.
    3. Переменной %{localtime\:%X} в cmd никогда не было.
    Это легко проверить введя команду set в cmd, она выдаст список всех переменных окружения. Это внутренняя переменная mvp, отношения к cmd не имеет.
    Ответ написан
  • Какие языки программирования можно осилить без математики?

    @res2001
    Developer, ex-admin
    Да и если не веб - то же самое.
    Математика понадобится, если вы пойдете в область разработки, где нужна математика, в большей части прикладных задач математикой не пахнет. Само изучение языка программирования к математике отношения не имеет.
    Просто математический склад ума зачастую это то что предрасполагает к занятию программированием, при этом саму математику можно и не знать.
    Не суйтесь в науку, ЦОС, машинное обучение, компьютерную графику, криптографию - все остальное обходится без большой математики, на уровне максимум 7 класса школы, а чаще и 4 достаточно.
    Ответ написан
    Комментировать
  • Как гарантированный канал проложить?

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

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

    Это сильно преувеличено.
    Пример использования:
    1. При компиляции устанавливаете через опцию компилятора /D свой define: /Dsome_const_name
    2. В коде:
    #ifdef some_const_name
    #include "my_header.h"
    #else
    #include "my_other_header.h"
    #endif

    3.Все
    Ответ написан
    2 комментария
  • Невозможно преобразовать double в void*?

    @res2001
    Developer, ex-admin
    Где функция convert()?
    Про сравнение строк вам уже ответили.
    Но у вас еще в printf полная фигня. Вы ей передаете void* при этом в шаблоне у вас int и double. Нужно делать преобразование и разыменование:
    if (type == "int"){
        printf("%d", *((int*)d));
      } else if (type == "float"){
        printf("%lf", *((double*)d));

    Ну и вместо строк "int, "float", ... лучше использовать какие-либо целочисленные константы - их то можно сравнивать напрямую.
    На Си вашу затею так же красиво как в плюсах не реализовать. Для каждого типа данных нужна своя функция convert с уникальным именем (converti(int), convertd(double), ...).
    В макросе нет возможности автоматически узнать какой тип данных ему передан, поэтому ваш код не откомпилируется.
    Необходимо явно указывать какую функцию для вывода вызывать (или явно указывать какой тип данных в нее передается).
    Например имеем набор функций для вывода соответствующего типа данных:
    void putsi(int);
    void putsd(double);
    void putss(const char *);
    
    #define PUTS(t, val)   puts ## t(val)
    
    int main()
    {
       PUTS(i, 123);
       PUTS(d, 3.14);
       PUTS(s, "hello world!");
      return 0;
    }
    Ответ написан
    Комментировать
  • Как быстрее скопировать 600 тысяч файлов на удаленный сервер?

    @res2001
    Developer, ex-admin
    Объедините их в один файл без сжатия и копируйте один файл, потом распакуете.
    tar может это сделать.
    Ответ написан
    5 комментариев
  • Как установить Запрет изменения ассоциаций файлов для пользователей в Windows 10?

    @res2001
    Developer, ex-admin
    1.Пользовательские ассоциации лежат в реестре в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
    Просто уберите права на запись у пользователя для нужной ассоциации.
    Ответ написан
    Комментировать
  • Почему (на скрине) таблица Products подразделяется на несколько?

    @res2001
    Developer, ex-admin
    С ProductDetail то же все более менее ясно: у вас могут быть айфоны: красные, зеленые, ...
    Со Stocks не понятно зачем оно в таком виде. Возможно далее в видео поясняется что-нибудь.
    Т.к. это обучающий материал, то делайте скидку на то что это сильно упрощенная модель, вряд ли ее можно в таком виде использовать.
    Ответ написан
    Комментировать