Главная страница
    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.46 MB
Время: 0.038 c
1-1129273540
ой
2005-10-14 11:05
2005.11.06
TGroupBox + скроллинг


2-1128957774
Tonich
2005-10-10 19:22
2005.11.06
IdFTPServer


6-1121720841
LexaDup
2005-07-19 01:07
2005.11.06
Нахождение клиентом сервера


3-1127462400
agp200431
2005-09-23 12:00
2005.11.06
Правильно ли я делаю что базу IB 6.0 бекаплю а потом разархивирую


14-1129225171
spotter
2005-10-13 21:39
2005.11.06
Простенькая задачка на прологе.





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