Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.01;
Скачать: CL | DM;

Вниз

Компоновка кода Делфями   Найти похожие ветки 

 
dima_matrix ©   (2003-08-16 12:55) [0]

Добрый всем день!
Столкнулся со следующей проблемой, может подскажет кто как с этим бороться. При даже небольших изменениях в проекте (довольно большем) изменяется код программы генерируемый компилятором Делфи для функций, которые никакого отношения к изменениям вообще не имеют. А мне очень важно чтобы данный код генерировался неизменным при модифицировании проекта (если модификации не касаются этих функций, конечно). Буду благодарен всем за любую помощь в данном вопросе.


 
Skier ©   (2003-08-16 13:18) [1]

>dima_matrix © (16.08.03 12:55)

> изменяется код программы генерируемый компилятором Делфи
> для функций, которые никакого отношения к изменениям вообще
> не имеют.

Поясни...


 
Романов Р.В. ©   (2003-08-16 14:17) [2]

Вынеси эти функции в dll или bpl.


 
dima_matrix ©   (2003-08-16 14:29) [3]

Идея интересная вынести во внешний модуль, а если нельзя? Настройками как-то можно допиться такого результата?
2 Skier : код в машинных кодах изменяется для функций при изменении исходников другой функции...


 
Skier ©   (2003-08-16 14:32) [4]

>dima_matrix © (16.08.03 14:29) [3]
Дык...это же вполне естественно. Даже странно...
Такой вопрос : почему вообще у тебя возник этот вопрос ?
что хочеть сделать в конечном итоге ?


 
Романов Р.В. ©   (2003-08-16 14:36) [5]


> Skier © (16.08.03 14:32) [4]

Наверно защиту


 
Юрий Зотов ©   (2003-08-16 14:43) [6]

> dima_matrix © (16.08.03 14:29) [3]


> код в машинных кодах изменяется для функций при изменении
> исходников другой функции...

Вероятно, изменяется все же не сам код функций, а их адреса?

Что и естественно. Компилятор ведь строит код ВСЕЙ программы разом. И у него нет настроек, которые приказывали бы ему располагать какие-то функции по фиксированным адресам, это уж он сам решает, где какую функцию разместить.

Выносите функции в отдельный модуль и будет Вам счастье. Проще - в BPL.


 
dima_matrix ©   (2003-08-16 15:23) [7]

Да нет, счастья не будет - на адреса-то я есстественно не завязывался, они могут отличаться для одной и той же программы при разных запусках... Господин Романов абсолютно прав по поводу защиты - при этом выносить функции во внешние модули не совсем разумно. Вы не могли бы посоветовать по этому поводу что-нибудь мне неразумному? А по поводу комментариев Skier - почему это есстественно? Я не могу похвастаться супер глубокими познаниями в Делфи, я вообще-то на ВижуалСях пишу, и там компилятор компилирует каждый файл проекта независимо, и если в файле не было изменений (и отключить оптимизацию), то генерировать он должен тот же код. И это кстати по поводу комментария господина Зотова, по-моему копилятор компилит не весь проект сразу - это задача компоновщика. Может быть я не прав, но все равно спасибо за коментарии...


 
Романов Р.В. ©   (2003-08-16 15:32) [8]

А что компилятор действительно генерит другой код функций в которых не было изменений?


 
Юрий Зотов ©   (2003-08-16 16:38) [9]

> dima_matrix © (16.08.03 15:23) [7]

Под словом "компилятор", конечно, имелась в виду кобинация "компилятор + линковщик". Ну да ладно, не в этом суть.

Похоже, Вам нужен перемещаемый код в виде данных с его исполнением в стеке. Это было бы элементарно, если бы не проблема модификации адресов, на которую Вы, видимо и наткнулись. Посмотрите по этому поводу вот что:
http://www.programme.ru/archive/2001/3/032001_3.phtml

И обратите особое внимание на фразу:
"придется передавать стековому коду указатели на вызываемые функции как аргументы. Это несколько неудобно, но более короткого пути, видимо, нет".

А также на пример после нее. Удачи!


 
dima_matrix ©   (2003-08-18 19:22) [10]

Спасибо за совет, обязательно посмотрю.



Страницы: 1 вся ветка

Текущий архив: 2003.09.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
6-1542
delphimun
2003-06-25 16:35
2003.09.01
Как из своей проги создать собственную учетную запись в Outlook-е


1-1405
хм
2003-08-16 00:55
2003.09.01
ShareMem


14-1549
Nikolay M.
2003-08-14 10:53
2003.09.01
Существует ли монитор запросов для MS SQL?


3-1302
n13
2003-08-09 16:27
2003.09.01
Clarion


1-1375
AlexLP
2003-08-16 18:17
2003.09.01
Копирование файлов с маской