Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 1
Регистрация: 31.05.2019
Сообщений: 24

Как засунуть .exe, полученный после pyinstaller, в С++ проект

15.10.2019, 17:27. Показов 1649. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь защитить свой код на python и к тому же использовать наработки по привязке по железу, написанные на C++ и PHP, на этом проекте.

Помогите!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2019, 17:27
Ответы с готовыми решениями:

Как засунуть в переменную полученный шорткод в Wordpress?
есть код: //шорткоды function vivod_sort(){ ob_start(); include_once ('includes/m/shortkod.php'); ...

Как скомпилировать python в файл .exe на Linux с pyinstaller?
Доброе время суток всем прогерам. Мне нужна помощь. Ситуация такая. Недавно начал изучать python. Если быть точнее, я сижу на Linux Mint 18...

Не знаю, как засунуть картинки в проект
Есть примерно 40 картинок (800x600 если это надо). Так же есть 1 Timage. Хочу сделать что бы при нажатии на определенную кнопку в Timage...

15
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636
15.10.2019, 19:46
Цитата Сообщение от ADvornick Посмотреть сообщение
Как засунуть .exe, полученный после pyinstaller, в С++ проект
В смысле засунуть? Берешь этот .ехе файл и кладешь в папку с .ехе от с++ проекта
0
1 / 1 / 1
Регистрация: 31.05.2019
Сообщений: 24
15.10.2019, 19:56  [ТС]
Смешно, конечно, но мне нужно объединить их в единое целое.
Можно и интегрировать код python прямо в CPP, но я хочу рассмотреть именно этот вариант.
0
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636
15.10.2019, 19:59
Цитата Сообщение от ADvornick Посмотреть сообщение
объединить их в единое целое.
Именно это или ты имеешь ввиду запустить с помощью приложения на с++ приложение на пайтоне?
0
1 / 1 / 1
Регистрация: 31.05.2019
Сообщений: 24
15.10.2019, 20:07  [ТС]
Именно это
0
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636
15.10.2019, 20:08
ADvornick, Хотя это
Цитата Сообщение от Vlast001 Посмотреть сообщение
объединить их в единое целое.
в принципе тоже само что
Цитата Сообщение от Vlast001 Посмотреть сообщение
апустить с помощью приложения на с++ приложение на пайтоне
И так, пункты:
1.
Цитата Сообщение от Vlast001 Посмотреть сообщение
Берешь этот .ехе файл и кладешь в папку с .ехе от с++ проекта
2.
Кликните здесь для просмотра всего текста
заходишь на сайт и выбираешь вариант который тебе по душе
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
15.10.2019, 20:10
ADvornick, не буду говорить, что это невозможно, но это очень сложно.
Гораздо проще вам сделать из вашего кода не exe, а библиотеку dll, которую уже подключить к exe на с++. Правда, насколько я знаю, pyinstaller не имеет прямой возможности делать библиотеки - нужно искать обходной путь. Но в любом случае - это гораздо, во много раз проще, чем то, что хотите вы.
0
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636
15.10.2019, 20:21
DrOffset, Если пайтон код работает с командной строкой то его запустить через с++, очень легко
C++
1
2
3
4
5
int rc;
rc = _spawnl(_P_WAIT, "pyapp.exe", "pyapp.exe", "-b", blank, "-r", buf, "-f", file,"-o", "1.txt",NULL); // рандомно потыкал, чтобы
        if(rc==0){ //показать как работает функция
            std::cout << "It's work";
        }
Даже это не нужно
C++
1
2
3
4
Py_Initialize();
pName = PyString_FromString(argv[1]);
/* Error checking of pName left out */
pModule = PyImport_Import(pName);
Но к сожелению, функция _spawnl годиться только если код на с++ есть ничто иное как интерпретатор кода
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
15.10.2019, 20:23
Vlast001, Насколько я понял, он хочет полностью спрятать код на питоне, оставив только машинный код, который и интегрировать в приложение на С++. Если все так, то стандартные механизмы встраивания Python ему не подойдут.

Добавлено через 35 секунд
Цитата Сообщение от Vlast001 Посмотреть сообщение
Если пайтон код работает с командной строкой то его запустить через с++, очень легко
Вроде бы он дал понять, что это не совсем то, чего он хочет.
0
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636
15.10.2019, 20:35
Цитата Сообщение от DrOffset Посмотреть сообщение
оставив только машинный код, который и интегрировать в приложение на С++
Ну как сделать такое я без понятия
P.S. Просто теория/догадка в слух, не суди строго))
Как мне кажется это значит что нужно вызвать функции пайтона в приложении на с++ вместо всего приложения на пайтоне, ну такое по идее должно идти к машинному коду приложения на пайтоне и вытягивать оттуда нужную функцию

Добавлено через 1 минуту
Цитата Сообщение от DrOffset Посмотреть сообщение
Вроде бы он дал понять, что это не совсем то, чего он хочет
Ну это и есть слияние, даже в документации пайтона
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
15.10.2019, 20:53
Цитата Сообщение от Vlast001 Посмотреть сообщение
Ну это и есть слияние, даже в документации пайтона
В общем, пусть ТС прояснит ситуацию. Мне показалось, что хочет сделать exe, полученный от pyinstaller физически частью исполняемого файла, полученного после компиляции с++ проекта. Если понимать его фразу
Цитата Сообщение от ADvornick Посмотреть сообщение
мне нужно объединить их в единое целое
именно так, то, как я говорил выше, это очень сложно и сложность эта для ТС не оправдана пока что никак.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
15.10.2019, 21:02
Цитата Сообщение от DrOffset Посмотреть сообщение
но это очень сложно
ну как сказать..
да сложно, но если ТС хорошо разбирается в PE (в чём я сомневаюсь), то всё это делается в редакторе на раз.

имеем EXE от питона, собираем EXE на плюсах, берём к примеру CFF Explorer (или любой другой, у которого есть функции create\write, а не просто банальный просмотр внутренностей) и начинаем играться с секциями, VA/RVA и т.д.
2
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
15.10.2019, 21:07
Цитата Сообщение от _lunar_ Посмотреть сообщение
если ТС хорошо разбирается в PE
Это вот ключевое в моей оценке.
0
1 / 1 / 1
Регистрация: 31.05.2019
Сообщений: 24
15.10.2019, 22:51  [ТС]
Если честно, мне очень понравился вариант преобразования программы Питона в библиотеку.

Есть примеры?
0
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636
15.10.2019, 23:23
В командной строке для Вижуал Студии компиляция исполняемого файла выглядит так:
cl a.cpp жмем энтер. Пишем cl -? и узнаем, что
//..............
-КОМПОНОВКА-

/LD создать библиотеку .DLL
/LDd создать отладочную библиотеку (.DLL)
//.....

В пайтоне обязательно есть аналог всего этого, сделайте там аналогичное и скомпилируйте код на выход вместо исполняемого файла в библиотеку
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
16.10.2019, 00:24
ADvornick, https://stackoverflow.com/ques... e-to-a-dll

Может быть проще будет сделать наоборот? Вынести все необходимое из С++ в библиотеку и подключить ее к вашей программе на python?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.10.2019, 00:24
Помогаю со студенческими работами здесь

Как засунуть звук в exe
Полагаю это как-то возможно тока вставка звука будет производится набором символов в ЕХЕ- шник? Я таким способом сращивал 2 мелодии в...

Как засунуть исходный код библиотеки DotNetZip в проект?
Слышал, что можно засунуть исходный код библиотеки в проект дабы не таскать вместе с exe файлом dll. Как это сделать с DotNetZip? Исходники...

Как в exe файл засунуть mp3 файлы?
У меня mediaplayer. Там несколько таких строк: MediaPlayer1.FileName := 'd:\02.mp3'; Как при создании exe файла программы сделать...

Как в exe файл засунуть mp3 файлы?
У меня mediaplayer. Там несколько таких строк: MediaPlayer1.FileName := 'd:\02.mp3'; Как при создании exe файла программы сделать...

Как засунуть exe в мою программу и запустить его
Как запустить exe в программе из ресурсов, не вынимая ее от туда?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru