• Как структурировать элементы в qml?

    Profi_GMan
    @Profi_GMan Автор вопроса
    Row подходит для этих целей
    Ответ написан
    Комментировать
  • Почему GameObject'ы перекрывают другие элементы?

    Profi_GMan
    @Profi_GMan Автор вопроса
    Надо просто было выставить Z position у GameObject-ов больше чем у других жлементов (у меня 100)
    Ответ написан
    Комментировать
  • Как сделать Static Build mac os c++ на qt creator?

    Profi_GMan
    @Profi_GMan
    Перекомпилтровать надо сам qt вам и выставить опцию соответственную (я про static build)
    Ответ написан
    Комментировать
  • Пишут ли программы для виндовс и линукс на java?

    Profi_GMan
    @Profi_GMan
    Как кроссплатформенный ЯП для винды и линя рекомендую C++ Qt
    Сам пользуюсь, проблем не замечено
    Ответ написан
    Комментировать
  • Как из exe собрать dll, имея сорсы?

    Profi_GMan
    @Profi_GMan
    Надо запускать ехе через функцию, а потом управлять вводом/выводом.
    Как это сделать на с# не знаю, гуглите "как запускать сторонние приложения с#"
    Ответ написан
    Комментировать
  • Стоит ли изучить С для понимания как все работает?

    Profi_GMan
    @Profi_GMan
    Имхо С - нет. Надо учить с++. Ты всё равно пройдёшь все низкоуровневые моменты, но с++ можно потом будет с удобством использовать в прикладной разработке, а с только в системном (ну почти).
    А вообще, если хочешь узнать, как всё работает, учи ассемблер. Рекомендую flat assembler
    Ответ написан
    Комментировать
  • На чем писать вот такое десктопное приложение - симулятор рынка акций - replay?

    Profi_GMan
    @Profi_GMan
    Если нужна скорость на миллисекунды, то это с/с++. Лучше на с. Но на си нельзя писать нормальные графические приложения. Поэтому советую писать на смеси си и с++. Графику писать с классами, а сами расчёты и всё другое самое важное писать лучше в функциональном виде. А вообще, если нужно что-то рассчитывать, то лучше эту часть на ассемблере написать, но это значительно сложнее.
    Итак, пишите на с++, но стараясь не использовать ООП, ибо оно замедляет. Интерфейс, кстати писать можно на qt
    Ответ написан
    Комментировать
  • Шифр Цезаря на C++/Qt?

    Profi_GMan
    @Profi_GMan
    QString encode(QString input, int offset) {
        for(int i = 0; i < input.length(); i++) {
            int sym = 0;
            if(input[i].toLatin1() > 64 && input[i].toLatin1() < 91 && (sym = input[i].toLatin1() + offset) > 90)
                //Если буква большая и если буква + смещение превышает код буквы Z
                input[i] = QChar(sym - 90 + 64);
            //sym - 90 получаем, насколько превышает код буквы Z, + 65 прибавляем к коду символа до A полученный результат
            //Теперь тоже самое но с проверкой на маленькую букву
            else if(input[i].toLatin1() > 96 && input[i].toLatin1() < 123 && (sym = input[i].toLatin1() + offset) > 122)
                //Если буква маленькая и если буква + смещение превышает код буквы z
                input[i] = QChar(sym - 122 + 96);
            //sym - 90 получаем, насколько превышает код буквы z, + 65 прибавляем к коду символа до a полученный результат
            else input[i] = QChar(input[i].toLatin1() + offset);
        }
        return input;
    }
    
    QString decode(QString input, int offset) {
        for(int i = 0; i < input.length(); i++) {
            int sym = 0;
            if(input[i].toLatin1() > 64 && input[i].toLatin1() < 91 && (sym = input[i].toLatin1() - offset) < 65)
                //Если буква большая и если буква - смещение меньше кода буквы A
                input[i] = QChar(sym - 64 + 90);
            //Получаем исходный символ (обратно sym - 90 + 64)
            //Теперь тоже самое но с проверкой на маленькую букву
            else if(input[i].toLatin1() > 96 && input[i].toLatin1() < 123 && (sym = input[i].toLatin1() - offset) < 97)
                //Если буква маленькая и если буква - смещение меньше кода буквы a
                input[i] = QChar(sym - 96 + 122);
            //Получаем исходный символ (обратно sym - 122 + 96)
            else input[i] = QChar(input[i].toLatin1() - offset);
        }
        return input;
    }
    Ответ написан
    4 комментария
  • В какой последовательности изучать C++? Разница между junior/midle в С++?

    Profi_GMan
    @Profi_GMan
    Учите сначала чистый с++, потом либо qt, либо .net.
    А между джуниором и мидлом разница только в опыте
    Ответ написан
    6 комментариев
  • Какие существуют библиотеки для ловли исключений и их отправки?

    Profi_GMan
    @Profi_GMan Автор вопроса
    В общем библиотека - google breakpad.
    Нужно сначала её собрать. И вот как я это сделал:
    Для начала нужно закинуть в папку папка_с_брикпадом\src\third_party вот это (библиотека lss) https://yadi.sk/d/BmWlgUmx3SHqka
    На линукс Просто полностью её скачал, после чего в корневой папке сделал ./configure && make. После этого .а файл будет в папка_с_breakpad\src\client\linux\libbreakpad_client.a
    На винде, я создал вот такой вот .pro файл в корневой папке breakpad и скомпилировал его:
    spoiler
    TEMPLATE = lib
    CONFIG += staticlib

    INCLUDEPATH += $$PWD
    INCLUDEPATH += $$PWD/src

    # Windows
    win32:HEADERS += $$PWD/src/common/windows/string_utils-inl.h
    win32:HEADERS += $$PWD/src/common/windows/guid_string.h
    win32:HEADERS += $$PWD/src/client/windows/handler/exception_handler.h
    win32:HEADERS += $$PWD/src/client/windows/common/ipc_protocol.h
    win32:HEADERS += $$PWD/src/google_breakpad/common/minidump_format.h
    win32:HEADERS += $$PWD/src/google_breakpad/common/breakpad_types.h
    win32:HEADERS += $$PWD/src/client/windows/crash_generation/crash_generation_client.h
    win32:HEADERS += $$PWD/src/common/scoped_ptr.h
    win32:SOURCES += $$PWD/src/client/windows/handler/exception_handler.cc
    win32:SOURCES += $$PWD/src/common/windows/string_utils.cc
    win32:SOURCES += $$PWD/src/common/windows/guid_string.cc
    win32:SOURCES += $$PWD/src/client/windows/crash_generation/crash_generation_client.cc

    после чего, в корневой папке появится .а файл
    Теперь нужно его (.а файл) подключить (в qt это LIBS += путь\имя.a в про файле) и дальше подключать стоит только заголовочный файл client/windows/sender/crash_report_sender.h для винды и client/linux/sender/crash_report_sender.h и всё. О том, что делать далбше можно прочитать здесь:
    https://maxsavenkov.livejournal.com/189460.html для винды
    https://gist.github.com/byronwind/94c94ee00dc442c71638 для linux
    Ответ написан
    Комментировать
  • Как получить место, откуда выбрасывается sigsegv и ему подобные?

    Profi_GMan
    @Profi_GMan Автор вопроса
    Для винды, чтобы узнать, шде произошло исключение, нужно:
    1. Компилировать в режиме отладки
    2. После выброса исключения создавать мини-дамп, который потом можно открыть с помощью windbg
    Но у этого спомоба есть недостатки:
    1. Если исключение произошло в библиотеке, то он скажет ту функцию, в которой произошло исключение, но не скажет, откуда эта функция была вызвана.
    2. Если использовать qt, то придёться тащить с собоё пару сотен мигабайт длл библиотек, вместо пары десятков, ибо длл для отладки весят где-то в десять раз больше
    Ответ написан
    Комментировать
  • Как запустить QProcess::start() из неосновного потока?

    Profi_GMan
    @Profi_GMan Автор вопроса
    Во время запуска процесса у меня выводится подробно лог. Функция лога у меня своя. Оказалось, что именно она давала sigsegv
    Ответ написан
    Комментировать
  • Какую практическую задачу выбрать для изучения C/C++?

    Profi_GMan
    @Profi_GMan
    Первое, что я всегда на каком-либо языке писал - это калькулятор. И Вам рекомендую. Это хороший вариант потренировать написание ui, да и к тому же научит логике языка(рекурсия, классы). Только подходить к своему творению надо, как к большому проекту. Тогда Вы точно лучше усвоение базу языке и войдёте в его логику
    Ответ написан
    Комментировать
  • Какой стоит учить язык программирования с видимым результатом?

    Profi_GMan
    @Profi_GMan
    Можно питон, он кросплатформен.
    Если программируете под линукс , и вам нужно делать маленькие программки (а вообще правильнее сказать скрипты) для себя,то решением лучше станет linux shell. Там результат каждой команды виден. Но для серьёзных больших проектов он не подходит.
    Если под винду, и тоже вам нужны маленькие программки, то берите batch. Но это уже в случае, если вы совсем отчаяный :). Он намного хуже linux shell.
    А вообще можно увидеть результат выполнения любой программы через отладчик.
    А на счёт с++: да, он сожет показаться сложным, но зато он очень быстр, и для него существуют сотни (если не тысячи) библиотек. На с++ можно программировать на обсолютно все платформы. Также, если на питоне сложно будет сделать нормально прикладную программу с графическим интерфейсом (она будет медленная и кривая, ибо питон для этих целей не предназначен), то на с++ получаются большие "правильные" программы, которые ктому же можнол будет запускать на всех платформах.
    Так что рекомендую всё-таки учить с++. После него, вы сможете быстро выучить обсолютно любой яп. А для граф. интерфейса рекомендую qt, очень удобная библиотека
    Ответ написан
    Комментировать
  • Как обратиться к элементу структуры?

    Profi_GMan
    @Profi_GMan
    if (strcmp(surname, en.surname) == 0 && en.meanMark==5)

    Вот так должно быть правильно
    Условие выполнится ТОЛЬКО если фамилия студента будет равна surname И если средний бал у него пять
    Ответ написан
    Комментировать
  • Есть ли аналог help() из Python3 в C++?

    Profi_GMan
    @Profi_GMan
    К сожалению нет, но и зачем? Там всё равно всё не опишешь... Подобное можно найти на сайтах, например ru.cppreference.com/w или en.cppreference.com (он часто корректнее)
    Ответ написан
    3 комментария
  • Как перевести qbaytearray cp1251 в QString?

    Profi_GMan
    @Profi_GMan Автор вопроса
    Если сделать вот так:
    QTextCodec *codec = QTextCodec::codecForName("CP866");
                _output = codec->toUnicode(proc.readAll());
                qDebug()<<_output;

    то при выводе в qmessagebox(или в другой виджет) и в файл - всё работает, но в консоли qt creator всё равно кракозябры, но это не столь важно
    Ответ написан
    Комментировать
  • Как сделать, чтоб Qt воспринимала escape-последовательности?

    Profi_GMan
    @Profi_GMan Автор вопроса
    Исправил таким образом: qDebug() << qPrintable(...)
    Ответ написан
    Комментировать
  • Класс инжектор DLL?

    Profi_GMan
    @Profi_GMan
    Вряд-ли поможет, но всё-таки: в qt есть qlibrary
    Ответ написан
    Комментировать
  • Как закрыть/открыть программу если открывается/закрывается другая программа?

    Profi_GMan
    @Profi_GMan
    Я знаю, как сделать чтобы открывалось одна программа, если закрывается другая:
    Надо написать батник, в котором просто перечисленны екзешка. Пример:
    notepad
    C:\program files\daemon tools\dt.exe
    Ответ написан
    Комментировать