Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > перекомпиляция


Автор: qwerty1122 6.5.2014, 19:13
привет,подскажите,как в программе можно вызвать cmd файл?т.е дело обстоит так,подключаем пустой файл,в ходе выполнения программы вызывается парсер и записывает в этот пустой файл текст и теперь необходимо перекомпилить проект  чтобы этот перезаписанный файлик цепанулся заново и продолжилось выполнение программы

Автор: NoviceF 7.5.2014, 09:04
Насколько мне известно, средствами c++ - никак. Это уже из области метапрограммирования, вероятно, нужен сторониий фреймворк.

Автор: bsa 7.5.2014, 13:42
qwerty1122, если я тебя понял правильно, то так никто не делает. Или ты пишешь/берешь готовый парсер интерпретируемого языка (Python, LUA) или используешь плагины (т.е. скомпилированные библиотеки, расширяющие функциональность программы)

Автор: qwerty1122 7.5.2014, 17:40
раз нельзя вызвать cmd файл...то мож есть какая-нибудь команда которая позволит перечисленные файлы просто перекомпилировать и продолжить выполнение программы?

Автор: Static 7.5.2014, 18:02
qwerty1122, вызвать cmd (да и вобще, что угодно запустить из-под ОС) можно. Смотреть в сторону system()/CreateProcess/и т.п. А говорят тебе, что ты, скорее всего, что-то делаешь неправильно, и что для подобных задач обычно используют скриптовые языки.

Автор: NoviceF 8.5.2014, 09:02
Цитата(qwerty1122 @  7.5.2014,  18:40 Найти цитируемый пост)
команда которая позволит перечисленные файлы просто перекомпилировать и продолжить выполнение программы? 

Хм.. ну кажется возможно сделать нечто подобное.. Только текущая программа это один процесс/поток, её перекомпилированный вариант будет уже другим, нужно будет как-то передавать контекст из одного потока в другой, и это может плохо сказаться на быстродействии.

Автор: bsa 8.5.2014, 12:15
NoviceF, плагины ;-)

Автор: xvr 8.5.2014, 13:39
Цитата(qwerty1122 @  7.5.2014,  17:40 Найти цитируемый пост)
то мож есть какая-нибудь команда которая позволит перечисленные файлы просто перекомпилировать и продолжить выполнение программы? 

Это делает отладчик VS в режиме edit-and-continue. Сделать это вне VS весьма и весьма проблематично. Кроме того, это даже внутри VS работает через раз.

Можно runtime откомпилировать файлы в динамическую библиотеку (*.dll в Win или *.so в Linux) и после этого загрузить ее к себе. Но этот процесс полностью зависит от ОС и компилятора.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)