![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
blablabla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
Всем здрасте.......
У меня такой вопросс. Можно ли в DELPHI создать собственный компилятор? Если да, то дайте пожалуста ссылочку где можно почитать об этом. Заранее спасибо. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Можно, ибо сам Дельфи написан на Дельфи. Других компилляторов не встречал, хотя интерпретаторов как грязи....
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
blablabla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
Ясно. Но как это можно сделать. Есть хоть немного информации об этом? |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
У меня есть две книги
1)простая (примеры на паскале) без сложной теории и пр. называется "Пишем компилятор.pdf" (1,5мб) 2)Теоретизрованая и более сложная и полная с примерами на делфи и С "Компиляторы. Принципы, технологии, инструменты.djvu"(5,5мб) Если нужно, то я выкладываю. p.s. тема скорее из раздела поиск литературы. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
blablabla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
Ладно, наверное это глобальный вопросс.
Дам конкретную задачу. К примеру мне нужна прога, в которой я бы мог выбрать рисунок, а затем нажать кнопку пуск. Далее создавался бы ris.exe при запуске которого в окне програмы ris отражался бы выбранный мной рисунок. Добавлено @ 23:01
Спасибо большое. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
blablabla, так для этого компилятор не нужен. Нужно просто иметь заготовку программы ris.exe и внедрять в нее новые ресурсы, а она сама будет уже определять что за ресурс у нее и соответствено грузить его.
А можно использовать компилятор Delphi DCC32.EXE и компилятор ресурсов BRCC32.exe. Они оба консольные. Сначала запустить первый с командной строкой и получить ресурс, затем исходник на паскале скомпилировать при помощи DCC32.EXE с этим ресурсом и получить EXE. Добавлено @ 23:16 Первая книга уже закачалась http://alexei-s1.narod.ru/books/pishem_compilator.pdf -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
blablabla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
alexeis1, с идеей на счёт ресурсов я понял. Но мне нужен один файл ris.exe в котором уже в скомпилированном виде будет находится мой рисунок.
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Ну так ресурс же и хранится в скомпилированном виде внутри одного единственого экзешника, его можно туда внедрять не компилируя заново экзешник, например так как это делает restorator, либо перекомпилируя заново, но это только если увеличение размера продукта на пару мегабайт не существенно. Все это будет выглядеть как один ris.exe
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
blablabla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
alexeis1, спасибо огромное. Тогда я наверное не правельно понял про ресурсы. Теперь буду изучать работу с ресурсами. Есть ли у тебя что нибудь про это?
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
blablabla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
alexeis1. Как добавлять ресурсы ясно, но как в самой программе их использовать???
|
|||
|
||||
Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 2 Всего: 18 |
alexeis1
А вторую книгу закачаешь? ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Voyager, да я закачал сразу одновременно с первой, но поскольку тут оно получается уже не по теме я ссылку не оставил.
Если кому надо то вот http://alexei-s1.narod.ru/books/kompil_pri...nolog.part1.rar http://alexei-s1.narod.ru/books/kompil_pri...nolog.part2.rar Нород запрещает закачку более 5Мб, потому архив разбил на две части. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
blablabla, вот пример загрузки из ресурса, но только он здесь не внедренный из вне, а прилинкованый при компиляции, но разница только в стоке {$R bmp.res}, которая линкует ресурс при создании Exe.
пример целиком с ресурсом можно скачать отсюда Пример -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
blablabla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
alexeis1. А как создать сам ресурс???
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
в папке bin delphi есть консольная прога brcc32.exe (она маленькая очень)
В командной строке надо указать имя rc файла описывающего ресурс (обычно там название секции пробел название ресурса пробел путь к ресурсу на диске). И еще необязательные дополнительные параметры типа название выходного файла *.res и путь к нему. Все это можно узнать запустив в CMD стоку brcc32.exe (она раскажет обо всех параметрах). Этот компилятор ресурсов придется за собой таскать. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
blablabla |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
alexeis1, код который ты привёл не срабатывает. Ты его сам пробывал? |
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
blablabla, странно у меня все отлично сработало...
Просто это пример как exe поместь в раздел RCDATA, а не картинку в раздел BITMAP Я уже подзабыл как работает этот примерчик, оказывается и res файл компилровать даже не надо. Просто указать имя файла и ресурса. Для тех кому сильно лень разбиратся в коде привожу уже совсем готовый пример с исходниками. Где програмка test.exe выдает ошибку о том что ресурс не найден, а когда запускается patch.exe и внедряет в него картинку jpeg, то при повторном запуске все уже срабатывает и картинка появляется на форме. Файл "копия test.exe" - резервная копия test.exe, добавил так как после патча уже не остается оригинала (test.exe). http://alexei-s1.narod.ru/Samples/10.7z Это сообщение отредактировал(а) alexeis1 - 12.9.2006, 12:28 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
blablabla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2006 Репутация: нет Всего: нет |
Спасибо...
![]() |
|||
|
||||
alex4012 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 26.7.2012 Репутация: нет Всего: нет |
Сначала сильно огорчился потому что код не заработал (а это как раз то что нужно(( уже недели 3 ищу), а потом удивился) код работоспособен на exe-шниках delphi 7 но когда компилируешь под delphi XE2 то выходной exe просто коцается(( и не запускается)
Подскажите как решить проблему? |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Код работоспособен и на XE2 сейчас перекомпилировал оба экзешника и все работает также как и на семерке. Основную работу делает функция UpdateResource(Hnd, RT_RCDATA, PChar(ResName), 1049, Buf, Size) . Это WinApi функция, очень маловероятно, чтобы она что-то портила. Это никакой не хак, а вполне документированная функция. Нужно посмотреть под отладкой коды ошибок которые возникают.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
stuq1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.1.2012 Репутация: нет Всего: нет |
У меня такая же проблема, но потихоньку начинает получаться - я создаю свободно распространяемую среду программирования. Планирую там сделать возможность создавать программы на нескольких языках программирования.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |