Pobieranie nazwy funkcji wywołującej delegate

dział ogólny

Pobieranie nazwy funkcji wywołującej delegate

Nowy postprzez Slynx » czwartek, 18 sierpnia 2011, 16:30

Chcę trochę odciążyć listę argumentów w funkcji kontrolującej przepływ wszystkich komunikatów w programie i przyszedł mi do głowy właśnie taki pomysł.
Czy jest możliwość pobrania nazwy funkcji WYWOŁUJĄCEJ delegate wewnątrz funkcji WYWOŁYWANEJ przez delegate ?
Szukałem w przestrzeni nazw System::Diagnostics i trochę w necie, ale nic takiego nie znalazłem.

Troszkę bardziej opisowo, jak ktoś nie zrozumiał
Funkcja wywołująca delegate wysyła komunikat + informacje o typie (jako argumenty), a funkcja przypisana do delegaty, filtruje typ komunikatu i wyświetla w odpowiednim, wcześniej zarejestrowanym elemencie. Jako, że jest też typ komunikatu "Debug" i waga "CriticalError" to przydałoby się wiedzieć jaka funkcja wysłała taki komunikat (Może da się to ściągnąć, tą nazwę metody ze stosu wywołań ? W System::Diagnostics są chyba klasy umożliwiające pobranie takiej informacji).
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome

Re: Pobieranie nazwy funkcji wywołującej delegate

Nowy postprzez Slynx » sobota, 29 października 2011, 14:13

Tu też dorzucę odpowiedź jakby ktoś potem szukał. Ten element można ściągnąć ze stosu, ale jest to bardzo nieeleganckie, bo wymaga grzebania w Stringu, który ulega zmianie w przypadku, np. zmiany przestrzeni nazw i tym samym cała nasza funkcja się sypię. Najlepiej pozostać przy dodatkowym argumencie i korzystać z makra __FUNCTION__, które umieszcza nazwę funkcji w której zostało wywołane.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości