CreateProcess()
- это вызов Windows API для запуска процесса, в точности как звучит, как ребенка вашей программы, которым вы можете управлять, зная, что это HANDLE
. system()
выполняет системную команду. Это все, что вы когда-либо знаете, и я лично избегаю использовать его любой ценой - не в последнюю очередь потому, что он не переносим (функция существует в Windows и Linux, но команда не будет).
Можно добавить данные в конец образа EXE - так работают установщики. Взгляните на эту статью о поддержке Microsoft , которая причудливо дает вам код на базовом уровне, но вы сможете легко превратить его в C ++. Вот статья о создании самоизвлекающего устройства , которое может быть более подходящим. Оба должны позволить вам встраивать файлы в исполняемый файл.
Я не рекомендую извлекать 7za
и вызывать его из System()
или CreateProcess()
- я рекомендую вам изучить SDK. Это сложно, но вы многому научитесь, делая это.
Наконец, так как вам придется изменить существующий исполняемый файл, вы не сможете сделать это во время компиляции. Вам нужно, чтобы код добавлял что-либо к своему изображению или другому изображению.
Подробнее о данных адресации , добавленных в exe.