Форум: "Потрепаться";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизВопрос к работавшим с DeDe Найти похожие ветки
← →
FunkyByte © (2005-10-11 11:54) [0]Пытался недавно расковырять одну программулину при помощи небезизвестного декомпиллятора Delphi-программ DeDe. Впринципе в полученном тексте всё более-менее понятно. Вопросы вызывают только конструкции вида System.@LStr... (например, System.@LStrAddRef(void;void):Pointer; или System.@LStrToPChar(String):PAnsiChar;). Ломал мозги над этой писаниной долго и с особым цинизмом, но понять, что это такое так и не смог. Кто-нибудь может объяснить что всё это значит? Буду крайне признателен.
← →
Digitman © (2005-10-11 11:57) [1]это значит, что в декомпилированном коде фигурирует, например, вызов ф-ции LStrAddRef() из юнита System
← →
Игорь Шевченко © (2005-10-11 12:17) [2]
> Ломал мозги над этой писаниной долго и с особым цинизмом,
> но понять, что это такое так и не смог.
Работа с AnsiString - ничего особенного.
← →
FunkyByte © (2005-10-11 13:03) [3]
> это значит, что в декомпилированном коде фигурирует, например,
> вызов ф-ции LStrAddRef() из юнита System
Ситуация в нектором смысле прояснилась, а в нектором даже запуталась. В модуле System действительно есть функция с похожим названием: _LStrAddRef. Отсюда возникает вопрос: куда в декомпиленном коде делся первый символ "_", и что значит заменивший его символ "@"? В случае с переменной конструкция @<имя_переменной> возвращает адресс этой переменной. А в данном случае возвращается точка вхождения в функцию, я правильно понял?
← →
Digitman © (2005-10-11 13:25) [4]
> в данном случае возвращается точка вхождения в функцию,
> я правильно понял?
да, правильно.
> куда в декомпиленном коде делся первый символ "_"
не обращай на это внимания, считай что это "compiler magic"-символ.
← →
Игорь Шевченко © (2005-10-11 13:27) [5]
> куда в декомпиленном коде делся первый символ "_", и что
> значит заменивший его символ "@"?
Тебя же не смущает синтаксис
> LStrAddRef(void;void):Pointer
поэтому что там пишет конкретный дизассемблер тебя не должно волновать. Слова void в Object pascal нетути
← →
FunkyByte © (2005-10-13 21:14) [6]Кстати, раз уж речь зашла о void: что оно в данном случае значит?
← →
Игорь Шевченко © (2005-10-13 21:51) [7]FunkyByte © (13.10.05 21:14) [6]
В данном случае оно значит чью-то ошибку, либо твою, когда ты текст переносил, либо DeDe сделавшую идиотский прототип, так как списка агрументов (void;void) быть не может.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c