• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Программное написание исходного кода

  • Автор темы Автор темы Nelson
  • Дата начала Дата начала
N

Nelson

Доброго времени суток!

В рамках научной работы реализовал свой маленький компилятор некоторого языка. Не буду грузить подробностями. Собственно задача гененрировать во время исполнения проекта фрагменты кода на С++. Работаю в среде Borland C++ Builder 6. Сейчас у меня уже гененрируется текст модуля (*.cpp + *.h). Но для того, чтобы он "подхватился", нужно пересобирать проект. Логично.. компиляция идет только во время запуска. Так вот как бы мне перекомпилировать это отдельный модуль уже во время выполнения? Может быть как-нибудь программно создавать *.dll и ее подгружать программно (Из гененрируемого модуля мне нужно подгружать только 2-3 функции и все, поэтому для меня вполне годится, если они будут завернуты в *.dll), но тогда вопрос как программно создавать *.dll ... Мои поиски в Google пока ни какого результата не дали... Или то, что я хочу, из области фантастики, и эту проблему обходят как-то совсем по-другому..?

Буду рад любым содержательным советам! Спасибо.
 
Решение найдено!


Ответ с соседнего форума пользователь AntonChik

1. если ты генеришь код(с++), то тебе не обойтись без компилятора(!).
2. как я понял твоя программа не создает еще одно приложение, а генерирует модуль, который должна подхватить и "впитать" в себя. то бишь перекомпиляцию проекта не избежать.
с командной строки это можно сделать так:
bcb.exe /b Project.bpr
ну естесственно надо успеть завершить родительский процесс, либо компилить во временный exe-шник, а потом переименовывать и запускать. в общем тут варианты.
3. если ты хочешь скомпилировать свой сгенерированный модуль в dll, то для этого можно создать шаблон проекта, к которому добавлять свой сгенерированный модуль, ну и соответственно компилить dll.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD