|
0 / 0 / 0
Регистрация: 27.04.2009
Сообщений: 6
|
|
Программное написание исходного кода12.04.2010, 12:18. Показов 1349. Ответов 4
Метки нет (Все метки)
Доброго времени суток!
В рамках научной работы реализовал свой маленький компилятор некоторого языка. Не буду грузить подробностями. Собственно задача гененрировать во время исполнения проекта фрагменты кода на С++. Работаю в среде Borland C++ Builder 6. Сейчас у меня уже гененрируется текст модуля (*.cpp + *.h). Но для того, чтобы он "подхватился", нужно пересобирать проект. Логично.. компиляция идет только во время запуска. Так вот как бы мне перекомпилировать это отдельный модуль уже во время выполнения? Может быть как-нибудь программно создавать *.dll и ее подгружать программно (Из гененрируемого модуля мне нужно подгружать только 2-3 функции и все, поэтому для меня вполне годится, если они будут завернуты в *.dll), но тогда вопрос как программно создавать *.dll ... Мои поиски в Google пока ни какого результата не дали... Или то, что я хочу, из области фантастики, и эту проблему обходят как-то совсем по-другому..? Буду рад любым содержательным советам! Спасибо
0
|
|
| 12.04.2010, 12:18 | |
|
Ответы с готовыми решениями:
4
Защита исходного кода файл исходного кода |
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
|
| 12.04.2010, 14:26 | |
|
1. если ты генеришь код(с++), то тебе не обойтись без компилятора(!).
2. как я понял твоя программа не создает еще одно приложение, а генерирует модуль, который должна подхватить и "впитать" в себя. то бишь перекомпиляцию проекта не избежать. с командной строки это можно сделать так: bcb.exe /b Project.bpr ну естесственно надо успеть завершить родительский процесс, либо компилить во временный exe-шник, а потом переименовывать и запускать. в общем тут варианты. 3. если ты хочешь скомпилировать свой сгенерированный модуль в dll, то для этого можно создать шаблон проекта, к которому добавлять свой сгенерированный модуль, ну и соответственно компилить dll.
1
|
|
|
221 / 135 / 48
Регистрация: 12.04.2010
Сообщений: 248
|
|
| 12.04.2010, 14:40 | |
|
Можно скомпилировать dll при помощи вызова компилятора bcc32 из командной строки посредством ShellExecute, с указанием всех необходимых параметров для bcc32. Или генерировать make-файл Project -> Export makefile и собрать dll утилитой make. (Также вызвав ее через ShellExecute).
1
|
|
|
0 / 0 / 0
Регистрация: 27.04.2009
Сообщений: 6
|
|
| 12.04.2010, 15:38 [ТС] | |
|
Всем спасибо!! Вариант с динамической генерацией DLL для меня вполне годится! Можно закрывать тему
0
|
|
|
ups-yurets
|
|
| 26.04.2011, 15:47 | |
|
Stropores, здравстуйте! В даный момент я работаю над созданием генератора компилаторов, и на стадии синтаксически управляемой трансляции возникла необходимость программного написания исходного кода. Поделитесь опытом, как Вы это реализовали через dll? Спасибо
|
|
| 26.04.2011, 15:47 | |
|
Помогаю со студенческими работами здесь
5
нет исходного кода Совместимость исходного кода Чтение и написание исходного кода учит программированию? Реализовать 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. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|