Ответы пользователя по тегу C++
  • Как настроить CMake на установку пакетов?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Решил дать дополняющий ответ и оформить его в виде ответа, а не комментария.

    Или "взрослое" решение пишется без пакетного менеджера?

    С точки зрения ведения проектов у пользователя вашего кода должно быть целостное лицо:
    • Или он совсем ничего не понимает и хочет собрать только ваш проект и забыть.
    • Или у него свое настроенное окружение, в котором собираются разные проекты, и ваш будет одним из многих.

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

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

    Мораль в том, что с точки зрения ведения проектов тоже надо уметь смотреть, не только кодить.
    Ответ написан
    Комментировать
  • Можно ли использовать dll в Ubuntu?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Если для разных платформ совпадают и API, и ABI, исполняемые файлы можно переносить на эти платформы без изменений. Если API или ABI платформ различаются, исходный текст требует изменений и повторной компиляции. API не обеспечивает совместимости среды выполнения программы — это задача двоичного интерфейса.

    Двоичный интерфейс приложений (TL;DR: у Linux и Windows они разные).
    Ответ написан
    Комментировать
  • Как увидеть русские символы в обычной строке в отладчике Visual studio?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Если известно, какому exe-файлу соответствует отладчик, ради эксперимента можно попробовать подредактировать ему манифест программой типа Resource Hacker. Оно нарушит цифровую подпись, конечно, но задачу, может, и решит, если программа потом тупо падать не будет.

    Сам никогда не пробовал.

    Заранее могу сказать, что подобный перевод умолчательной кодовой страницы нарушит вывод однобайтовых символов не в UTF-8. В данной программе, они, скорее всего будут отображаться символами-заменителями �����. Это никак не лечится: или простые однобайтовые символы навроде 1251, или UTF-8.

    Колониальная политика США
    Все в мире говорят по-английски, а если не говорят — им же хуже.
    Ответ написан
    Комментировать
  • Как "склеить" два файла?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Речь про инъекцию? Гуглить про инъекцию. Дописывание байтов в конец не поможет, обязательно нужно учитывать структуру ELF или PE, что у вас там? В PE в конце файла будут перемещаемые символы («релоки») или ресурсы. Для правильной склейки файл еще придется перебазировать.
    Ответ написан
    2 комментария
  • Как подключить библиотеку TgBot к срр проекту?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Это означает, что программа собралась, но при запуске не может найти нужную DLL, поскольку она не видна через PATH и не лежит рядом с программой. Доступность системе можно проверить командой where:
    where TgBot.dll
    Ответ написан
    4 комментария
  • Есть ли фриланс на С++ с нуля?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Нет.
    Ответ написан
    Комментировать
  • Где найти других программистов?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Стримить на Twitch.
    Ответ написан
    Комментировать
  • Знает ли кто-то системную DLL, которая не фиксирует себя в памяти при загрузке?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Знаю, что есть ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs, но не знаю, из-за него ли такое поведение.
    Ответ написан
    Комментировать
  • Есть ли хорошие пошаговые туториалы проектов на С++ для новичков?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Можно попробовать написать что-нибудь под KolibriOS. Хорошо прочищает мозги.
    Ответ написан
    Комментировать
  • C++ как вывести аски смайл, не указывая код?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Представленный вами символ Юникода U+263A не влезает в ASCII. Его можно вывести только в UTF-8, предварительно перекодировав из UTF-16. Нужно создать проект Unicode (не Multibyte). На чистом Си будет примерно так:
    #include <windows.h>
    
    int main()
    {
        TCHAR c = _T("☺");
        char utf8[4]; // max UTF-8 charater bytes
        DWORD bytesWritten;
        DWORD cp;
    
        WideCharToMultiByte(CP_UTF8, 0, *c, 1, *utf8, 4, NULL, NULL);
        cp = GetConsoleOutputCP;
        SetConsoleOutputCP(CP_UTF8);
        WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), *utf8, sizeof(utf8), *bytesWritten, NULL);
        SetConsoleOutputCP(cp); // возвращаем назад для других консольных приложений в том же окне
    
        return 0;
    }
    Ответ написан
    Комментировать
  • Удалить Emojii символ из строки в Qt?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    return str.remove(QRegularExpression("[\\x{1F600}-\\x{1F7FF}]+"));
    Ответ написан
  • Почему одна программа на Windows и Ubuntu использует разное количество памяти?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Есть предположение, что менеджер кучи в стандартной библиотеке вашего компилятора под Windows более продвинут по сравнению с оным под Ubuntu. Возможно даже, что это цена "свободы" ПО.
    Ответ написан
    Комментировать
  • Как скомпилировать FAR из исходников на Windows?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Зато есть CPPBuilder 6.0

    Не соберет. Он поддерживает какой-то настолько древний стандарт C++, который был еще в то время, когда над стандартами C++ не задумывались.

    Вообще, раз у вас возникают проблемы со сборкой решений в родном формате VS, вы еще не доросли до нужного уровня. Пусть это станет для вас вызовом (challenge — модное ныче словечко). Совершенствуйтесь.
    Ответ написан
  • Возможно ли использовать Visual Studio 2017(для c++) как portalbe?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Как понимаю, CLion можно скачать в виде zip-архива, распаковать на флешку и таскать с собой. Но он платный, оказывается.
    Ответ написан
    1 комментарий
  • Почему ломается окно, созданное мной на win32 API при изменении его размеров?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    А ValidateRect в обработчике WM_PAINT зачем?
    Ответ написан
  • Как организовать хранение библиотек и хидеров от которых зависит наш проект?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    И чтобы хранилась история, чтобы мы могли взять версию своей библиотеки за прошлый год и быстро ее собрать со всеми зависимостями. Сейчас используем сетевую папку просто.

    В SVN есть такая штука, как svn:externals. В Git и Мercurial тоже наверняка есть, а вот в CVS вряд ли.

    Суть в том, что в вашем хранилище хранится ссылка на другое (внешнее) хранилище, и при развертывании рабочей копии клиент ходит по этим "символическим ссылкам" и рекурсивно по ним всё скачивает. В SVN подчиненные рабочие копии будут выглядеть как обычные, у них будет своя папка .svn.

    Нужно только, чтобы внешнее хранилище было такого же типа, как и ваше. Скажем, SVN не сможет скачать из внешнего Git. Если вы качаете библиотеки не из хранилищ, а просто архив с сайта, заведите у себя отдельное хранилище для библиотек и складывайте туда все нужные версии.
    Ответ написан
    Комментировать
  • Как вызвать стандартную программу Windows "defrag" в коде C/C++?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    Давайте угадаю: вы пытаетесь запустить 64-битный defrag в 64-битной ОС из 32-битного приложения? It is not recognized as an internal or external command operable program or batch file. :-)
    Ответ написан