Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файл с расширением *.dcu, назначение файла 
:(
    Опции темы
jenya7
Дата 28.9.2007, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.9.2007

Репутация: нет
Всего: нет



Вопрос такой - зачем нужен файл с расширением *.dcu
и в какой момент он появляеться в проекте.
Заранее благодарен.
PM MAIL   Вверх
Alix
Дата 28.9.2007, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 7
Всего: 23



DCU = Delphi Compiled Unit. т.е. это откомпилированный *.pas файл


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
jenya7
Дата 28.9.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.9.2007

Репутация: нет
Всего: нет



то есть если удалить *.pas из проекта он будет работать с *.dcu?
на каком этапе проект подключает *.dcu?


Это сообщение отредактировал(а) jenya7 - 28.9.2007, 20:30
PM MAIL   Вверх
Alexeis
Дата 28.9.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(jenya7 @  28.9.2007,  20:26 Найти цитируемый пост)
то есть если удалить *.pas из проекта он будет работать с *.dcu?
на каком этапе проект подключает *.dcu?

  Да для линковки и компиляции достаточно *.dcu, там есть вся необходимая информация кроме исходников самих функций.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
BaD_SeCt0R
Дата 29.9.2007, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 4
Всего: 18



Цитата(Alexeis @  28.9.2007,  23:25 Найти цитируемый пост)
Да для линковки и компиляции

Если я не ошибаюсь, то он уже скомпилирован. Тут уж дело линкера...


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
Alexeis
Дата 29.9.2007, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



BaD_SeCt0R, он то скомпилирован, но модули зависящие от него могут быть еще не скомпилированны, но dcu содержит всю необходимую информацию информацию о типах, параметрах и т.д. так что остальные модули компилируются так как будто это был бы pas файл.

Добавлено через 2 минуты и 4 секунды
  Другое дело в С++ там действительно OBJ файлы попадают только линкеру, но для них есть заголовочный файл без которого невозможно использовать этот OBJ, так как нет инфы о типах, тут же гибрид заголовочного файла С++ и OBJ файла для линковки, т.е. 2 в одном.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
BaD_SeCt0R
Дата 29.9.2007, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 4
Всего: 18



Цитата(Alexeis @  29.9.2007,  00:24 Найти цитируемый пост)
Другое дело в С++ там действительно OBJ файлы попадают только линкеру, но для них есть заголовочный файл без которого невозможно использовать этот OBJ, так как нет инфы о типах, тут же гибрид заголовочного файла С++ и OBJ файла для линковки, т.е. 2 в одном. 

Да. В Делфи нет понятия "хедера".


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
jenya7
Дата 29.9.2007, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.9.2007

Репутация: нет
Всего: нет



Спасибо за объяснение, все понятно.
PM MAIL   Вверх
Rrader
  Дата 29.9.2007, 05:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Цитата

Да для линковки и компиляции достаточно *.dcu, там есть вся необходимая информация кроме исходников самих функций. 


Отсюда вытекает второе очень важное назначение DCU: они ускоряют процесс компиляции


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Dragin
Дата 29.9.2007, 10:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.9.2007

Репутация: нет
Всего: нет



DCU = Delphi Compiled Unit
Это прямое составляющее Object Pascal кода,
*pas служит всего лишь для восприятия кода человеком,
все *pas файлы переводятся в *dcu и они нужны лишь для просмотра кода.


Короче говоря если выложить просто *dcu то ни кто не сможет смотреть исходник,
если выложить *pas то исходник увидят переделают под сво и будут выдавать ха своё творение smile)
PM MAIL   Вверх
EvilsInterrupt
Дата 29.9.2007, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 3
Всего: 9



Сказали проще, че мудрить то?

Есть стадии построения исполнимого файл, это:
1) Компиляция исходного кода и получения равнозначного кода но в машинных кодах, там указаны некоторые связи касательно этого модуля, для компоновщика. Вобщем результат этой стадии - получить объектый код в виде файла и он довольно часто называется "Объектным файлом". В MS Visual C++ 6.0 этими файлами являются файлы с расширением "*.obj", а в Delphi "*.dcu".
2) Компоновка, это когда есть много или один объетных файлов, и задача этой стадии используя связи в этих объектных файлах, получить исполнимый файл.

Но что мне дают эти "*.dcu" ?

Дают вот что:
Любой программист может возжелать продать компонент, но чтобы он был без исходного кода! Вот! Вот оно! Вы дает объектые файлы "*.dcu", ваш клиент их подключает у себя и если версия совпадает, то он будет их на ура использовать. Потому что для стадии компоновки вся информация в "*.dcu" уже существует!

Нерекомендую:
Выносить защитные механизмы в pas-файлы ибо легко эти "*.dcu" реверсятся, в инэте даже есть исходник на дельфи, который позволяет распарсить "*.dcu" в код на ассемблере, что даст злоумышленнику крякнуть и нахаляву юзать ;)
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1359 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.