Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
7-1677
HellTrooper
2003-06-16 15:54
2003.09.01
При выключении компа...


14-1571
iNew
2003-08-14 04:15
2003.09.01
Забыл ссылку на базу готовых решений кинте плиз.


1-1415
Zilog
2003-08-15 15:32
2003.09.01
как подлинковать сишную библиотек??


14-1566
Pavel
2003-08-11 18:10
2003.09.01
может кто знает?


4-1725
AndrewPo
2003-07-03 08:19
2003.09.01
Как свернуть форму с BorderStyle=None?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский