Форум: "Прочее";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
ВнизCodeGear продалось Ebarcadero, вроде как :) Найти похожие ветки
← →
pasha_golub © (2008-05-07 17:08) [0]Сабж: http://dn.codegear.com/article/38132
← →
pasha_golub © (2008-05-07 17:09) [1]Детали: http://www.codegear.com/about/news/embt
← →
Kolan © (2008-05-07 17:15) [2]Мда, вроде собираются дальше работать, но все равно как-то боязно…
← →
Игорь Шевченко © (2008-05-07 17:16) [3]Не радует
← →
pasha_golub © (2008-05-07 17:19) [4]
> Не радует
Не могу знать чего ждать, но перемены всегда к лучшему, я так думаю
← →
Игорь Шевченко © (2008-05-07 17:41) [5]pasha_golub © (07.05.08 17:19) [4]
> но перемены всегда к лучшему
Ты это древним китайцам скажи.
По сабжу - лучше бы их Оракл купил :)
← →
PEAKTOP © (2008-05-07 17:43) [6]Может хоть эти возродят CLX.
Одно радует: теперь будет только лучше.
← →
тимохов (2008-05-07 17:49) [7]
> По сабжу - лучше бы их Оракл купил :)
и утопил?
нафига они ораклу
← →
Ega23 © (2008-05-07 17:51) [8]
> Ты это древним китайцам скажи.
Почему именно китайцам??????
← →
Игорь Шевченко © (2008-05-07 18:00) [9]
> Почему именно китайцам??????
"Чтоб тебе жить во время перемен" - это древние китайцы придумали. Недоброго желали
← →
DrPass © (2008-05-07 18:04) [10]
> Чтоб тебе жить во время перемен" - это древние китайцы придумали.
> Недоброго желали
Нынешние тоже добра нам не желают
← →
Ega23 © (2008-05-07 18:06) [11]
> "Чтоб тебе жить во время перемен"
А, в этом плане...
← →
Германн © (2008-05-07 18:18) [12]
> "Чтоб тебе жить во время перемен" - это древние китайцы
> придумали. Недоброго желали
>
И ведь и в самом деле кончилось всё для древних китайцев плохо. Никто не уцелел. Все вымерли (((
← →
Palladin © (2008-05-07 18:52) [13]остались неокитайцы... все как на подбор... избранные :)
← →
iZEN (2008-05-07 21:32) [14]JBuilder ещё жив?
← →
Anatoly Podgoretsky © (2008-05-07 21:36) [15]
> Interestingly, Embarcadero vice president - Nigel Brown
> - came to
> Embarcadero after more than 10 years at Borland where he
> headed up the
> Developer Tools business (Code Gear) in 2006. Prior to that,
> he was
> Vice-President-EMEA, growing it to be Borland"s largest
> and most successful
> region in 2000-2004.
Вот откуда ноги растут
← →
Игорь Шевченко © (2008-05-07 21:56) [16]Anatoly Podgoretsky © (07.05.08 21:36) [15]
Мафия :)
← →
Anatoly Podgoretsky © (2008-05-07 22:25) [17]> Игорь Шевченко (07.05.2008 21:56:16) [16]
Кумовство, Борланд поставляет свои кадры Микрософту и другим компаниям. Я не знаю как сейчас оценивать текущий уровень разработчиков, но это по уровню ниже отцов разработчиков и их попсовые действия у меня вызывают огорчение. Я думаю, если бы старые не ушли, то мы бы имели Юникод или в Д3 или максимум в Д5
Зато сейчас МС имеет С#, другие другое, а Борланд в одном известном месте.
Еще не известно чем может закончиться эта покупка, я еще помню попытку продажи Корелу, тогда стоимость акции упала в несколько раз. Борланд еще легко отделался, в основном пострадал Корел.
Я знаю кому надо продавать, но они не покупают, тогда мы жили бы безбедно, без страха на будущее. Скажи что они испортили, уничтожили в отличии от ИБМ, Корела? Все их покупки давали вторую жизнь продуктам. А вспомним судьбу продуктов, которые продал Борланд, большинство прикратили свое существование.
← →
tesseract © (2008-05-07 23:09) [18]
> Зато сейчас МС имеет С#, другие другое, а Борланд в одном
> известном месте.
C# своеобразная ерундовина. Скрестили java с VCL. Причём С++ списали в утиль, под него новые вкусности не работают. А так в принципе, сам язык не плохой, читаемость повысили. Но вот "Рога" торчат. Борланда больше убило отсутсвие проектирования - в D2006 иногда в ступор становишься, при чтениии VCL.
← →
tesseract © (2008-05-07 23:11) [19]
>platform-independent software provider of database and application >development tools.
Иде же оно ? Хочу фрэймворк QT за 1000, а не за 3.500 Евро.
← →
vuk © (2008-05-08 00:41) [20]Хм... Мне Embarcadero вспоминаются исключительно, как производитель какой-то маловнятной глючной тулзовины для работы с БД... :(
← →
Германн © (2008-05-08 00:48) [21]А мне ничем оно не вспоминается. У меня есть ТР7.0, Д4, Д6. Все меня полностью устраивают. А мафия и кумовство пусть идут лесом.
:)
← →
Тыщ © (2008-05-08 01:09) [22]Если бы в Delphi сделали прямой вызов функций WinAPI (call без jmp), naked функции, {$CODEALIGN x} и поддержку COFF .obj, было бы здорово.
← →
Германн © (2008-05-08 01:47) [23]
> Тыщ © (08.05.08 01:09) [22]
>
> Если бы в Delphi сделали прямой вызов функций WinAPI (call
> без jmp), naked функции, {$CODEALIGN x} и поддержку COFF
> .obj, было бы здорово.
>
Ты о своём, личном?
← →
Тыщ © (2008-05-08 07:15) [24]Германн © (08.05.08 1:47) [23]
> Ты о своём, личном?
Я думаю, оное не только мне полезно было бы.
← →
Игорь Шевченко © (2008-05-08 09:42) [25]
> Если бы в Delphi сделали прямой вызов функций WinAPI (call
> без jmp),
Это как ?
← →
koha © (2008-05-08 10:14) [26]
> Тыщ © (08.05.08 01:09) [22]
> Если бы в Delphi сделали прямой вызов функций WinAPI (call
> без jmp)
Var
szDlgTitle,szMsg: PChar;
begin
szDlgTitle := " --- Assembler Pure and Simple --- ";
szMsg := "halo world!";
asm
push MB_OK
push szDlgTitle
push szMsg
push 0
call MessageBox
push 0
call ExitProcess
end;
end;
а так не канает?
← →
Дмитрий С (2008-05-08 10:49) [27]
> koha © (08.05.08 10:14) [26]
А теперь посмотри в CPU что получилось
Вот так это делается =)program Project1;
uses
windows;
var
MessageBox : function (hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall;
begin
MessageBox := GetProcAddress(LoadLibrary(User32), "MessageBoxA");
MessageBox(0, "Hi", "", 0);
end.
← →
tesseract © (2008-05-08 10:49) [28]
> Тыщ © (08.05.08 01:09) [22]
У детей свои проблемы. Delphi для офисных преложений предназначено, а не для 3D маньяков.
← →
Rouse_ © (2008-05-08 11:08) [29]
> Если бы в Delphi сделали прямой вызов функций WinAPI (call
> без jmp)
Ты про jmp который из секции импорта делается? ;)
> naked функции
Пиши на асме, чем тебе пролог с эпилогом помешал?
Да и inline уже давно появились :)
> {$CODEALIGN x} и поддержку COFF .obj
Зачем?
← →
Игорь Шевченко © (2008-05-08 11:19) [30]Кистате о naked-функциях: Когда мне потребовалось сымитировать их поведение, был написан такой код:
function HSNtUserCreateWindowEx (p1,p2,p3,p4,p5,
X, Y, Width, Height : Integer; hWndParent : HWND;
p11, p12,p13,p14,p15 : Integer) : HWND; stdcall;
asm
pop ebp
mov eax,00001157h
mov edx,7FFE0300h
call edx
ret 60
end;
← →
@!!ex © (2008-05-08 11:28) [31]> Delphi для офисных преложений предназначено, а не для 3D
> маньяков.
Это вы решили?
← →
Тыщ © (2008-05-08 13:19) [32]Rouse_ © (08.05.08 11:08) [29]
> Ты про jmp который из секции импорта делается?
Ага. Сейчас call -> jmp [API], а надо бы call [API].
> Пиши на асме, чем тебе пролог с эпилогом помешал?
Иногда хочется, чтоб ret не вставлялся. Можно было бы произвольные данные asm..end генерировать, ret зачастую все портит.
Конечно, можно и костылями обходиться, но из-за какой мелкой отсутствующей фичи...
>> {$CODEALIGN x} и поддержку COFF .obj
> Зачем?
Первое - для оптимизации, второе - для совместимости с большинством объектников, в OMF сейчас мало что может компилировать. А конвертеры глючные, для больших вещей не годятся.
Либо Delphi очень привередлив (то invalid format, то просто не видит символы).
← →
Mystic © (2008-05-08 13:41) [33]> Ага. Сейчас call -> jmp [API], а надо бы call [API].
Предложи другую схему?
Адрес функции из библиотеки DLL неизвестен на этапе компиляции/линковки. Получается, чтобы реализовать твою схему, необходимо будет при загрузке EXE-файла иметь дополнительно специальную таблицу, в которой бы хранились все обращения к этой функции и их подправить. Это может быть как вызов этой функции, так и взятие адреса. Это приводит к тому, что страницы кода с памяти и на диске будут отличаться друг от друга. Возникнут проблемы с тем, чтобы организовать для нескольких приложений использование одних и тех же кодовых страниц. В общем никому не нужный геморрой. Если для какой-то функции тебе так важно не терять на промежуточный JMP, правь адрес руками :)
← →
Игорь Шевченко © (2008-05-08 13:52) [34]
> Ага. Сейчас call -> jmp [API], а надо бы call [API].
Так это не только в Delphi, не переживай
← →
Тыщ © (2008-05-08 14:04) [35]Mystic © (08.05.08 13:41) [33]
Ты меня не понял. Я не хочу вызывать функции API настолько напрямую и тем самым терять всю совместимость (это годится разве что для демосценок).
Я хочу вызывать через импорт напрямую, как это делают многие другие компиляторы.
← →
Rouse_ © (2008-05-08 14:06) [36]
> Так это не только в Delphi, не переживай
Нет, тут все-же различается. Специально проверял сторонним отладчиком, чтоб не грешить на то как отображает внутренний дизасм у обоих сред.
У DelphiE8 B4FFFFFF CALL <JMP.&user32.CreateWindowExA> ; \CreateWindowExA
У VC++FF15 94514400 CALL DWORD PTR DS:[<&USER32.CreateWindowExA>] ; \CreateWindowExA
← →
Игорь Шевченко © (2008-05-08 14:17) [37]Тыщ © (08.05.08 14:04) [35]
> Я не хочу вызывать функции API настолько напрямую и тем
> самым терять всю совместимость (это годится разве что для
> демосценок).
пардон, какая совместимость и кого с кем имеется в виду.
Rouse_ © (08.05.08 14:06) [36]
> Специально проверял сторонним отладчиком
убедился что в каких-то конкретных версиях конретных компиляторов это так. И что с того ? Тут экстраполяция неуместна.
← →
Тыщ © (2008-05-08 14:21) [38]Игорь Шевченко © (08.05.08 14:17) [37]
> пардон, какая совместимость и кого с кем имеется в виду.
Я так понял, Mystic говорил о вызове функций из dll напрямую, без таблицы импорта вообще. Это уже экстрим.
← →
Игорь Шевченко © (2008-05-08 14:24) [39]Тыщ © (08.05.08 14:21) [38]
Да, это экстрим.
Но все-таки я не совсем понимаю, чем тебе так jmp помешал :)
← →
Тыщ © (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.61 MB
Время: 0.049 c