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

Вниз

Вопрос к работавшим с 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.054 c
3-1127449796
SQL-nik
2005-09-23 08:29
2005.11.06
Обнуление "счетчика" уникального поля


11-1107760862
Ал
2005-02-07 10:21
2005.11.06
Помогите найти старые версии KOL MCK


3-1127387537
Leshiy
2005-09-22 15:12
2005.11.06
Проблема использования SUM() в запросе.


4-1125093097
ronyn
2005-08-27 01:51
2005.11.06
Как шрифт установить?...


14-1129122903
Антоний
2005-10-12 17:15
2005.11.06
Для печати проспектов