• Как добавить файл конфигурации к библиотеке?

    @res2001
    Developer, ex-admin
    Обычно подобные вещи делаются не так.
    Для этого в cmake предусмотрена функция configure_file
    Смысл в том, что вы создаете шаблонный файл, содержащий ссылки на переменные cmake. configure_file обрабатывает этот шаблон, заменяет все ссылки значениями переменных и создает из них новый файл. Этот новый файл вы и используете в проекте. Т.е. реального файла (в вашем случае conf.h) в проекте не существует, он появляется только во время компиляции.
    Изменять значения переменных cmake пользователь может через параметры командной строки cmake с помощью ключа -D, например: cmake ... -DMY_VAL="New value".
    Подобную переменную внутри cmakelists.txt обычно декларируют через option, там же можно указать и описание переменной и значение по умолчанию.
    Примеры использования можете найти в любом более менее крупном проекте cmake на github.
    Ответ написан
  • Как создать проект с++ на основе готового кода?

    @res2001
    Developer, ex-admin
    5000 ошибок - скорее всего вы что-то делаете не так.
    Обычно к проектам прилагается хотя бы минимальная инструкция по сборке, где, обычно пишут, какой компилятор и среду использовать для сборки.
    Даже под винду далеко не все проекты используют MS Visual Studio, поэтому sln файлы совсем не обязательный аттрибут.
    Для кросс платформенных проектов, обычно используют какие-то универсильные средства для сборки, например cmake (есть еще ряд других), у которых свои правила использования.
    Все это кажется сложным, но на самом деле это не сильно сложно, можно достаточно легко "набить руку" собирая разные проекты скажем в течение месяца :-) Так что ваши 50 часов - ни о чем.
    Ответ написан
  • Можно ли програмно изменить громкость в виндвс?

    @res2001
    Developer, ex-admin
    Если интересно, то в audacity (это музыкальный редактор с открытым кодом) в свое время делали библиотеку portmixer, она заточена под работу совместно с библиотекой portaudio. Portmixer входит в состав исходников audacity.
    Вот этот portmixer предназначен для изменения громкости, причем это кросс-платформенный вариант.
    Изменение громкости - это достаточно не тривиальный процесс и одним вызовом WinAPI это не делается.
    Если хочется можете взять исходники portmixer и доработать их под себя.
    Ответ написан
  • В чём разница локального адреса и localhost?

    @res2001
    Developer, ex-admin
    У вас сервер не слушает localhost, поэтому страница и не открывается.
    Или настроен "virtual host" - сайт привязан к доменному имени, а не к порту/адресу.
    Переадресацию сделать можно, но не нужно, т.к. это не о том. Все это регулируется правкой конфига.
    Кстати, вы не написали, что у вас в качестве сервера и ОС, поэтому в ответах только абстрактные рассуждения.
    Ответ написан
  • Можно ли создать обьектный файл на 1 ос а линковать на др?

    @res2001
    Developer, ex-admin
    Вы можете создать на одной платформе объектные файлы для разных платформ используя кросс-компилятор для соответствующей платформы. И сразу линковать исполняемый файл то же можете.
    Ответ написан
  • Какой тип БД будет быстрее выполнять SELECT?

    @res2001
    Developer, ex-admin
    "Стандартные" реляционные базы данных подходят для большинства задач, их надо рассматривать в варианте по умолчанию.
    Всю остальную "экзотику", типа монги, можно рассматривать только если по каким-то причинам не удовлетворяют реляционные БД. Часто NoSQL используется вместе с SQL, но для разных подзадач.
    Слишком сильно и не очень заслуженно сегодня пиарят подход NoSQL.
    Ответ написан
  • Инкремент и декремент?

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

    Префиксный вариант проще в реализации, а значит работает чуть быстрее. При большом количестве итераций в цикле это может иметь некоторое значение. В префиксном варианте нет "отложенных эффектов", из-за которых в постфиксном варианте могут возникать ошибки.
    Ответ написан
  • Альтернатива sudo/su для Windows?

    @res2001
    Developer, ex-admin
    Параметр в реестре:
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

    отключает действие UAC для процессов запускаемых удаленно. Устанавливать его надо на ПК, на котором будут удаленно запускаться приложения. После установки требуется перезагрузка.
    Когда он установлен и вы запускаете что-то удаленно с правами администратора удаленного компьютера, то программа запускается с реальными администраторскими правами, без фильтра UAC.
    Например с помощью того же psexec (или wmic) можно будет запускать удаленно приложения.
    Не уверен, что это сработает в случае с ssh и telnet, т.к. сервер службы работает на удаленном компьютере.
    Ответ написан
  • Что делать с ошибкой Raptrstub.exe 0xc000007b?

    @res2001
    Developer, ex-admin
    В интернетах пишут, что это часть от драйверов AMD для видеокарты.
    Скачайте свежие драйвера для вашей видюхи с сайта производителя.
    Удалите старые драйвера, перезагрузитесь.
    Установите новые.
    Ответ написан
  • Matlab строки и данные?

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

    @res2001
    Developer, ex-admin
    Вы указываете имя файла без пути, значит ОС ищет файл в текущем рабочем каталоге. Когда вы запускаете скрипт в консоли, вы вероятно как раз находитесь в этом каталоге и у вас все работает. Когда запускает скрипт cron текущим каталогом является ... какой-то каталог, удобный крону по каким-то его кроновым причинам.
    Так что правильный выход - указывать полный путь к файлу - просто передавайте полный путь к файлу в параметре запуска скрипта и
    твои волосы будут мягкими и шелковистыми
    .
    Ответ написан
  • Как в Windows менять язык так что бы в момент переключения языка курсор ввода элементы не уходил с inputa?

    @res2001
    Developer, ex-admin
    Похоже вы как-то специфически нажимаете Alt+Shift, так что сначала жмете Alt. А по Altу винда переносит фокус ввода на первый пункт меню программы.
    Приучитесь сначала жать Shift, а затем Alt. Клавиша Shift безопасна в этом смысле :)
    Ответ написан
  • Ждёт ли NET STOP завершения службы?

    @res2001
    Developer, ex-admin
    Вроде ждет.
    Но если служба не завершается по какой-либо причине, то не знаю какое поведение. Возможно отваливается по таймауту с каким-нибудь сообщением. Перенаправьте вывод stdout и stderr в файл, чтоб можно было проанализировать позже.
    Вообще есть более продвинутая команда для работы со службами: sc /?
    Можно остановить службу, проверить состояние и если остановлена, то запустить.
    Ответ написан
  • Неправильный вывод?

    @res2001
    Developer, ex-admin
    Вы не правильно инициализируете указатель ptr: int *ptr = s[0];
    Обращение s[0] просто возвращает первый элемент массива (в вашем случае 1). Это не указатель.
    Правильная запись была бы:
    int *ptr = &s[0];
    или
    int *ptr = s;


    Если бы вы поставили максимальный уровень сообщений компилятора, то в этом месте он бы вам ругнулся.
    В целом рекомендую в своих проектах всегда выставлять максимальный уровень сообщений и исправлять ошибки, на которые указывает компилятор. В большинстве случаев компилятор выдает абсолютно правильные рекомендации. Конечно бывают и исключения.
    Ответ написан
  • Безопасно использовать типы atomic из Си в динамических структурах?

    @res2001
    Developer, ex-admin
    Атомарные переменные - это такие же переменные как и остальные. Инициализировать их вы можете сколько угодно раз. Это относится только к встроенным типам. Атомарные классы - это сказка.
    Но на них накладываются некоторые ограничения:
    1. выравнивание переменной - переменная должна находится по адресу обычно кратному размеру переменной. Если не будет правильного выравнивания, то intelовские процы могут сделать 2 операции чтения, что уже не будет атомарной операцией. Другие процы могут сгенерировать какое-нибудь исключение.
    2. атомарная переменная всегда volatile - т.е. компилятор не может ее кэшировать в регистре, всегда идет обращение к памяти.
    Не все атомарные переменные в std действительно атомарны. Это проверяется с помощью atomic_is_lock_free(). Атомарность зависит от платформы. Например на x86 int64 - не атомарна из-за ограничений процессора. Тогда как на 32 битных АРМах она вполне атомарна.
    При обычном чтении/записи атомарных переменных (с упорядочиванием памяти memory_order_seq_cst) происходит синхронизация кэшей ядер - из-за чего атомарные операции "дороже" не атомарных. Но этот процесс на разных архитектурах стоит по разному. Для синхронизации кэшей есть отдельные ассемблерные инструкции.

    В целом все undefined behavior для атомарных переменных в std связаны с:
    1. возможностью объявить атомарным любой класс
    2. не для всех встроенных типов на конкретной платформе гарантируется реальная атомарность (atomic_is_lock_free).
    3. если вы не будете соблюдать ограничения, то же ничего гарантировать нельзя.
    Так что особо пугаться undefined behavior не стоит. Просто соблюдайте ограничения, не используйте атомарные классы и удостоверьтесь, что встроенные типы на вашей платформе действительно атомарны.
    Ответ написан
  • Новые книги по C++?

    @res2001
    Developer, ex-admin
    Bogdan100,
    обновлённые фишки

    Вы же только изучаете язык. Обновленные фишки вам пока не сильно нужны, пока хватит и стандартных, главное чтоб книга основывалась на стандарте не ниже С++11. Берите любую толстую книгу по плюсам, например Прата подойдет, есть издание 2018 года.

    По относительно новым фишкам возьмите Скота Меерса "Эффективный и современный С++. 42 ре.... Там современность заканчивается на С++14. Но семантика перемещения разжевана очень хорошо, а это, наверное, самая главная новая фишка, которая появилась в С++11. Ну и другие фишки С++11/14 то же присутствуют.

    Из того, что недавно видел в магазинах интересного: Энтони Уильямс С++ Практика многопоточного програм.... Второе издание вышло в прошлом году. Книжка классная по многопотоку, но она не учебник, а узко специализированная, читается достаточно сложно, но материал очень хорош. На русском языке я подобного больше не видел в одной книге. Полистал оглавление - добавилось пара-тройка глав, которых не было в первом издании 2012 года.
    Ответ написан
  • Почему вылазит ошибка ActiveX?

    @res2001
    Developer, ex-admin
    Видимо потому что компонента
    Название_ ActiveX _компонента
    не установлено в системе.
    Ответ написан
  • Вывести вместо пробелов введенной строки его ASCII-код?

    @res2001
    Developer, ex-admin
    Просто преобразуйте символ в int и выводите.
    char a = ' ';
    std::cout << "ASCII code: " << static_cast<int>(a) << std::endl;
    Ответ написан
  • Как комбинировать несколько значений из одного enum?

    @res2001
    Developer, ex-admin
    Битовые операции можно использовать только если ваш enum состоит из значений равных степеням двойки: 1, 2, 4, 8, ...
    Если у вас произвольные значения в enum (1, 2, 3, 105, 888, ...) то битовые операции применять нельзя.
    Если нужен какой-то универсальный вариант - сделайте массив значений.
    Ответ написан