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

Вниз

Имя метода или функции   Найти похожие ветки 

 
kull   (2002-04-17 12:21) [0]

Привет всем!
Давно мучающий меня вопрос:
А можно ли каким либо способом, находясь внутри метода, узнать его имя.
Интересуют не только published, но и private,public и protected методы.


 
Игорь Шевченко   (2002-04-17 13:52) [1]

День добрый,

Конечно! Достаточно посмотреть на имя функции или метода :-)

С уважением,


 
MBo   (2002-04-17 14:19) [2]

Этот вопрос несколько раз видел в конфах borland, ответы уклончивые. (анекдот такой есть)

В нашем форуме я тоже поднимал этот вопрос - гуру, к сожалению, не заинтересовались.

вот чего я придумывал, полумеры, конечно.
недо-решение 1 для published
procedure TForm1.Button1Click(Sender: TObject);
var p:pbyte;
function DummyFunc: Pointer;
asm
xor eax, eax
end;
begin
p:=@DummyFunc;
inc(p,4);
label3.caption:=classname+"."+methodname(p);
end;

недо-решение 2

function ACaller:pointer;
asm
mov eax, [esp]
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
var p,p1:pbyte;
begin
p1:=ACaller;
dec(p1,53);
//53-магическое число, зависит от пролога процедуры, например, инициализации строк или дин. массивов
p:=methodaddress("CheckBox1Click");
label3.caption:=inttohex(cardinal(p),8);//для контроля
label4.caption:=inttohex(cardinal(p1),8);
label2.caption:=classname+"."+methodname(p1);
end;

Куда смотреть -
1) изучать состояние стека - кропотливо разбираться надо,
поскольку у задачи практического смысла мало, я не вникал пока
2) генерировать detailed map (linker)
3) сопоставлять адреса из VMT и DMT c текущими



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];

Наверх















Память: 0.82 MB
Время: 0.031 c
3-94282
Igor65
2002-04-08 14:54
2002.04.29
Как импортировать информацию из txt файла в базу


3-94297
Yuraz
2002-04-06 15:53
2002.04.29
Ребят, кто писал базу для магазина, нужна организация таблиц


3-94295
anton_private
2002-04-08 14:03
2002.04.29
Как получить список MS SQL серверов в сети?


1-94464
Reticent
2002-04-15 18:27
2002.04.29
Я походу или плохо выспался, или ооочень мало знаю, или тупой


3-94289
IronHawk
2002-04-05 10:31
2002.04.29
Приветствую Мастеров ! Как из обыкновенного Edit-a сунуть ...





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