Ответы пользователя по тегу C++
  • Несколько вопросов о С++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    1. Компиляция - перевод текста в исполняемый код. Современная компиляция процесс сложный, сейчас он включает в себя и непосредственно трансляцию и линковку в конечный исполняемый файл (.exe, .com, *nix executable, и др). Да исполняемый файл это практически машинный код процессора.

    2. Компиляция обычно идет под определенную платформу (грубо говоря процессор), но в Java, например, тоже есть JIT-компиляция под саму java-машину. Сейчас слишком много виртуализации, чтобы давать недвумысленные утверждения.

    3. Программе есть разница. У компилятора могут быть разные опции оптимизации. А OC лейер делается лично вами - например для отрисовки окошек, вы можете использовать виндовые библиотеки, и понятное дело что они будут работать только под виндой. Или использовать какой-нить фреймворк кроссплатформенный, и тогда будет под теми платформами которые поддерживает фреймворк. Или мутите графику с нуля, ищете как это реализуется под каждую платформу. То есть на С++ вы можете писать в зависимости от ваших знаний платформ.

    4. Разное железо предоставляет разные возможности, но вы должны уметь с ним работать. Если вы хотите использовать GPU (чипсет на видяшках) для майнинга, понятное дело что железо должно быть с таким GPU.
    Если вы пишете простенькую прогу с использованием стандартных библиотек, разницы нет.
    Ответ написан
    1 комментарий
  • Как создать программу для работы с почтовыми серверами для отправки и получения сообщений (pop, smtp, imap)?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Почитайте о простых примерах работы с почтовыми протоколами.
    javascript вам не поможет, разве что javascript на nodejs.
    Ответ написан
    Комментировать
  • Как в одном execl выполнить две команды?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    "ls file; rm -f file"
    "ls file && rm -f file"
    "ls file || rm -f file"

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

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Не совсем понятен вопрос. Вы пример приведите что вы хотите сделать и какой результат получить.

    Потому что для posix файловых систем, расположение файла и его наличие не обязательно для уже открытого файла, поскольку handler указывает на inode а не directory entry.
    Ответ написан
    Комментировать
  • Как на C++ вызвать имитацию клавиш CTRL+V?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Если вы запускаете exe файл, который имитирует CTRL+V, то фокус уже сместится с вашей программы с текстовым полем на новый процесс, и CTRL+V уйдет в этот же exe файл или бат скрипт.

    Но вы можете использовать любые кликеры или софт для тестирования. Посмотрите AutoIT или ACTool
    Ответ написан
    Комментировать
  • Как создать видеофайл с помощью c++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Непонятно что вы имеете ввиду "рисовать кадры".
    Вы хотите графический редактор?

    IMHO, ваша проблема заключается в том, что вы много читаете но ничего не пишете. Не пытаетесь реализовывать на практике. А оставаясь теоретиком, вы не сможете правильно ставить вопросы.

    Читайте про видеокодеки (x264, mpeg) и контейнеры (mkv, avi, etc.)
    Ответ написан
    7 комментариев
  • Можно ли сделать онлайн игру на С ++, в интернете (io game)?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Хочу начать с чего-то простого (например. сделать 2D игру) и хочу сделать что-то интересное и чтобы приносоло прибыль на следующие разработки, начинаю с 2D, так как невозможно одному сделать


    Вы вообще не с той стороны подходите к вопросу.
    Если вы хотите заработать и получить прибыль - УСТРОЙТЕСЬ НА РАБОТУ, ГДЕ ПЛАТЯТ ЗАРПЛАТУ.

    Если вы хотите написать что-то технически крутое, то 99% что вы не сможете это продать.

    Нужно четко понимать, что продают не красивое техническое решение. Продают то, за что клиент готов заплатить деньги. У вас есть клиент? У вас есть понимание кто купит вашу программу? Если нет - идите в студию, набирайтесь опыта работы с аудиторией.

    Программисты слишком часто думают, что они умнее всех, и знают как заработать.. Но это далеко не всегда так.
    Ответ написан
    Комментировать
  • Можно ли зашифровать часть кода C?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    свои библиотеки?
    Ответ написан
  • Почему игровые движки пишут на C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Движок от minecraft написан на java, можете видеть в чем разница с точки зрения возможностей.
    Основная проблема - работа с памятью, которая в более низкоуровневых языках типа с/c++ под контролем программиста, следовательно производительность предсказуема.
    Ответ написан
    Комментировать
  • Как прочитать область памяти выше системы?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Написать свою виртуальную машину, имитировать железо, чтобы ОС не подозревала что она крутится не на реальном железе.
    Ответ написан
    Комментировать
  • Кто может объяснить как создаётся софт для игр?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Чтобы создавать ПО, нужно уметь программировать.

    Чтобы создавать ПО для игр - для начала тоже нужно уметь программировать, ведь игры - это тоже ПО.

    Ассемблер не обязательно, но полезно знать принципы и основы.
    С++ не обязательно, но полезно знать основы.

    Было бы неплохо знать основы того языка программирования, на котором написана игра, которую вы хотите взломать.
    Ответ написан
  • СИ и С++. Чем они так опасны, если их использовать вместе?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Если люди, от которых вы это слышали не могут объяснить чем они опасны, то не слушайте этих людей.
    Ответ написан
    Комментировать
  • Какие подводные в написании своего мини Total Commander?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Подводный камень заключается в том, что вы не справитесь.

    Ибо задача - сложная, для ее решения понадобится несколько тонн мотивации.

    А вы даже сами не можете для себя определить, стоит ли за это браться и спрашиваете такое на тостере.
    Ответ написан
    2 комментария
  • Нужно вынести в поток вывода вместо записи в файл как это сделать?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    $ ll
    total 12
    drwxrwxr-x  2 saboteur saboteur 4096 Feb 10 09:49 ./
    drwxr-xr-x 11 saboteur saboteur 4096 Feb 10 09:48 ../
    -rw-rw-r--  1 saboteur saboteur  132 Feb 10 09:48 write.cpp
    $ cat write.cpp
    #include <stdio.h>
    
    int main ()
    {
      char buffer[] = { 'w' , 't' , 'f' , '\n' };
      fwrite(buffer , 1 , sizeof(buffer) , stdout );
    }
    $ gcc write.cpp -o write
    $ ./write
    wtf
    $
    Ответ написан
    1 комментарий
  • Какие языки применяют для программирования изобретений и устройств?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Любые можно применять.
    Чаще всего в качестве ембеддед операционки используются варианты Линукса, на котором кроме родных c/c++ есть и питон и джаву можно поставить и js и bash и вообще все.

    Редко когда используется что-то эзотерическое - чем дороже устройство, тем проще в него впихнуть нормальный проц с нормальной ОС и не париться с ограничениями.
    Ответ написан
    2 комментария
  • Что должен знать каждый С++ программист?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Каждый C++ программист должен уметь пользоваться поисковыми системами.
    Особенно в тех случаях, когда он собирается задать вопрос, который за него уже задавали множество раз, и на который можно найти готовые ответы.
    Ответ написан
    Комментировать
  • Извлечение переменных и их адресов в памяти?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    "Как получить список всех переменных и их адреса в памяти из чужого другого процесса или запущенной игры"

    Никак. Переменные не хранятся в памяти обычного процесса. Откомпилированная программа хранит данные по смещению адреса, а не по названию переменных.

    "и изменить их."
    Найти процесс, обратиться к ячейке памяти по адресу и изменить. Нужны базовые знания С++ и немного гугла.

    "Короче, как реализовать на c++ программу как artmany. "
    Если вы внимательно пользовались artmoney, то как минимум могли бы
    1. правильно написать ее название
    2. Заметить, что ArtMoney не ищет никаких переменных - с ее помощью можно просто искать адреса в памяти, а потом уже найденным адресам присвоить что-то типа имени, но это именно то, что придумали вы, а не переменные внутри процесса.
    Ответ написан
    Комментировать
  • Как закрыть чужой процесс через c++/win api?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Изучить win api, написать программу.
    Вы не чувствуете, что у вас совершенно не средние вопросы, а вопросы начинающего программиста, который еще не успел научиться писать даже helloworld программы, но уже считает что он учится быть хакером?

    Хакер это не меньше, чем программист, а зачастую больше.
    Сперва научитесь просто писать программы, тогда будете понимать как они работают и как можно их взламывать.
    Последние ваши 10 вопросов вызывают в основном смех именно по причине некорректной формулировки самих вопросов.

    Пример того, что вам нужно находится по первой ссылке в гугле:
    #include <cstdio>
    #include <windows.h>
    #include <tlhelp32.h>
    
    int main( int, char *[] )
    {
        PROCESSENTRY32 entry;
        entry.dwSize = sizeof(PROCESSENTRY32);
    
        HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
    
        if (Process32First(snapshot, &entry) == TRUE)
        {
            while (Process32Next(snapshot, &entry) == TRUE)
            {
                if (stricmp(entry.szExeFile, "minecraft.exe") == 0)
                {  
                    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
    
                    // Тут можно закрыть процесс.
    
                    CloseHandle(hProcess);
                }
            }
        }
        CloseHandle(snapshot);
    
        return 0;
    }
    Ответ написан
  • Где посмотреть, какие операции можно применить к определенному типу данных в C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Это legacy наследние, которое сейчас считается устаревшим.
    Когда трава была зеленее, а С++ еще слишком молод, в чистом С вообще не было boolean, поэтому использовался int, который использовался в качестве flag переменных.
    При этом 0+1 = true, 1+1 = true, 2+1 = true (все верно)
    Но при этом 1-0=false (верно), однако 2-1=true, 3-1=true.

    Поэтому никогда никто не использовал декремент для подобных значений - иначе это могло привести к ошибке. Собственно инкремент тоже теоретически мог однажды переполниться...

    Когда появился boolean, то для совместимости сохранили возможность инкремента boolean, но с самого начала это считалось deprecated.

    The value obtained by applying a postfix ++ is the value that the operand had before applying the operator. [Note: the value obtained is a copy of the original value ] The operand shall be a modifiable lvalue. The type of the operand shall be an arithmetic type or a pointer to a complete object type. After the result is noted, the value of the object is modified by adding 1 to it, unless the object is of type bool, in which case it is set to true. [Note: this use is deprecated, see annex D. ]


    Кстати это в 2015 году уже официально отменили:
    www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p...
    "The ++ operator for bool was deprecated in the original 1998 C++ standard, and it is past time to formally remove it.
    Ответ написан
    Комментировать
  • Как сделать установщик программы через терминал Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Пользуйтесь zip или tar+gzip, в чем проблема?
    Ответ написан
    Комментировать