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

Вниз

CodeGear продалось Ebarcadero, вроде как :)   Найти похожие ветки 

 
Тыщ ©   (2008-05-08 14:27) [40]

Игорь Шевченко ©   (08.05.08 14:24) [39]

Все модные компиляторы умеют обходиться без лишнего jmp, чем Delphi хуже? :)


 
Rouse_ ©   (2008-05-08 14:30) [41]


> чем Delphi хуже?

Как однажды сказал ЮЗ: "все-же плюсы Delphi не в его названии" ;)


 
Игорь Шевченко ©   (2008-05-08 14:31) [42]

Тыщ ©   (08.05.08 14:27) [40]

Не скажи - это невыгодно. Так загрузчику в одном месте менять ссылку на импортируемую функцию, а так в сотне мест. Таблица relocation распухает


 
Тыщ ©   (2008-05-08 14:34) [43]

Игорь Шевченко ©   (08.05.08 14:31) [42]

Согласен, но это в случае dll. В exe-шниках relocation ни к чему.


 
oxffff ©   (2008-05-08 14:36) [44]


> Тыщ ©   (08.05.08 14:27) [40]
> Игорь Шевченко ©   (08.05.08 14:24) [39]
>
> Все модные компиляторы умеют обходиться без лишнего jmp,
>  чем Delphi хуже? :)


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

ЗЫ. Хотя действительно в Release версии можно убирать. По флагу например.


 
Rouse_ ©   (2008-05-08 14:36) [45]


> В exe-шниках relocation ни к чему.

Экзешник тоже может экспортировать функции и может быть подгружен не по стандартному адресу ;)


 
Тыщ ©   (2008-05-08 14:38) [46]

Rouse_ ©   (08.05.08 14:36) [45]

Не будем вдаваться в подробности. Relocation не нужен для обычных, ничего не экспортирующих exe-шников, а таких большинство.


 
Тыщ ©   (2008-05-08 14:39) [47]

oxffff ©   (08.05.08 14:36) [44]

Ну так можно и dword в таблице импорта поменять, тот же перехват.


 
oxffff ©   (2008-05-08 14:39) [48]


> Тыщ ©   (08.05.08 14:38) [46]
> Rouse_ ©   (08.05.08 14:36) [45]
>
> Не будем вдаваться в подробности. Relocation не нужен для
> обычных, ничего не экспортирующих exe-шников, а таких большинство.
>


Если таблица импорта съедет, то будешь править все CALL [API].


 
Тыщ ©   (2008-05-08 14:41) [49]

oxffff ©   (08.05.08 14:39) [48]

> Если таблица импорта съедет

Как она может съехать?


 
oxffff ©   (2008-05-08 14:43) [50]


> Тыщ ©   (08.05.08 14:39) [47]
> oxffff ©   (08.05.08 14:36) [44]
>
> Ну так можно и dword в таблице импорта поменять, тот же
> перехват.


Тогда будет перехватываться все.
А как быть в разными dcu?
Если нужно перехватывать только вызовы одного DCU.


 
Тыщ ©   (2008-05-08 14:44) [51]

oxffff ©   (08.05.08 14:43) [50]

Уж сильно специфический случай.


 
oxffff ©   (2008-05-08 14:45) [52]


> Тыщ ©   (08.05.08 14:41) [49]
> oxffff ©   (08.05.08 14:39) [48]
>
> > Если таблица импорта съедет
>
> Как она может съехать?


А что есть гарантия, что она всегда на том же месте?
Секция съедет и таблица вместе с ней.


 
Тыщ ©   (2008-05-08 14:46) [53]

oxffff ©   (08.05.08 14:43) [50]

Ах да, выяснилось еще одно - хотелось бы, чтоб вызовы одинаковых API из разных DCU объединялись. А то доходит до того, что kernel32.dll в таблице упомянут по 5 раз...


 
Тыщ ©   (2008-05-08 14:47) [54]

oxffff ©   (08.05.08 14:45) [52]

> А что есть гарантия, что она всегда на том же месте?
> Секция съедет и таблица вместе с ней.

А если секция кода съедет? Пиши пропало.


 
oxffff ©   (2008-05-08 14:50) [55]


> А если секция кода съедет? Пиши пропало.


Почему? Reloc поправит все.


 
Тыщ ©   (2008-05-08 14:53) [56]

oxffff ©   (08.05.08 14:50) [55]

Ах, вон ты о чем. Про это было сказано в [43].
А секции друг относительно друга всегда неподвижны.


 
Anatoly Podgoretsky ©   (2008-05-08 15:21) [57]


> Как однажды сказал ЮЗ: "все-же плюсы Delphi не в его названии"
> ;)

Зато теперь будут смеяться конкуренты, странное для русского слуха имя, я даже представляю как нас теперь будут называть, вместо благородного греческого имени.


 
^-k2-^ ©   (2008-05-08 15:32) [58]

http://www.embarcadero.com/company/executive_team.html
обратите внимание на трудовой путь третьего сверху товарища :)


 
Ins ©   (2008-05-08 15:43) [59]


> Экзешник тоже может экспортировать функции и может быть
> подгружен не по стандартному адресу ;)


Так вроде же виндовый загрузчик все равно игнорирует и таблицу импорта экзешника, и таблицу релокации.


 
Kerk ©   (2008-05-08 16:03) [60]


> Ins ©   (08.05.08 15:43) [59]
> Так вроде же виндовый загрузчик все равно игнорирует и таблицу
> импорта экзешника, и таблицу релокации.

Неправда :)


 
Ins ©   (2008-05-08 16:07) [61]


> Неправда :)


Если верить MSDN - то выходит что так. EXE можно загрузить с помощью LoadLibrary только для дерганья ресурсов. Да и мои эксперименты когда-то это подтвердили. Приходилось таблицу релоков самому ручками обходить после загрузки )


 
ZeroDivide ©   (2008-05-12 01:25) [62]

Как то все это не очень радостно... но! может ценовую политику изменят?

обратите внимание на трудовой путь третьего сверху товарища :)

Тоже не особо радует. У него значиться Management Sciences в графе "образование"... и вот, как раз, из-за этого сайнсеса некоторых "продвинутых" товарищей в Borland"е, Delphi и страдал на протяжении последних лет.



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

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

Наверх




Память: 0.58 MB
Время: 0.018 c
15-1210271563
AlexDan
2008-05-08 22:32
2008.06.22
Поиск в сети..


2-1212044324
кот
2008-05-29 10:58
2008.06.22
Строковая переменная


15-1210561061
Slider007
2008-05-12 06:57
2008.06.22
С днем рождения ! 12 мая 2008 понедельник


1-1195378114
MikeLevinN
2007-11-18 12:28
2008.06.22
TListView


15-1210267804
AlexDan
2008-05-08 21:30
2008.06.22
Тоже о фотоаппарате...