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

Вниз

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

Наверх




Память: 0.56 MB
Время: 0.051 c
2-1211961281
Alex Ford
2008-05-28 11:54
2008.06.22
Компоненты для отправки файла по почте


2-1211782721
Xmen
2008-05-26 10:18
2008.06.22
Как можно передать данные из текушего приложения другую и нажать


15-1210560946
Slider007
2008-05-12 06:55
2008.06.22
С днем рождения ! 11 мая 2008 воскресенье


2-1211883511
dumka
2008-05-27 14:18
2008.06.22
Сумма прописью в отчете


2-1211748921
sof
2008-05-26 00:55
2008.06.22
динамически-созданные компонеты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский