![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
Доброго времени суток!
Работаю на "Microsoft Visual Studio 2008", язык программирования "C++". # Задача: Необходимо получить только имя функции в нутри её тела. Существует макрос "__FUNCTION__", который отлично с этим справляется, НО, если фукция внутри класса, то она ещё и возвращает имя класса. Образец:
Out: "TLogClass::SendMsg"; - А мне надо чтобы вывело только "SendMsg"; Погуглив я нашел, что был такой макрос, который возвращал только имя функции: "__func__", но компилятор 2008 студии не хочет распознавать этот макрос. P.S. -> Собственно нужна помощь по этому САБЖУ.... P.S. -> Макросы "__FILE__" и "__LINE__" просьба не предлогать... Это сообщение отредактировал(а) MuForum - 21.7.2010, 23:51 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: нет Всего: 306 |
из этой оперы - BOOST_CURRENT_FUNCTION
но есть одно но - данный макрос возвращает еще больше информации, чем __FUNCTION__. обычно стараются получить как можно больше информации. так что - как вариант - выводите необходимую информацию путем разбора получаемой строки. |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
Ну так "отрежь" имя класса
Добавлено @ 20:05 http://forum.vingrad.ru/forum/act-ST/f-94/t-303377.html http://msdn.microsoft.com/en-us/library/b0084kay(VS.80).aspx Это сообщение отредактировал(а) Alca - 20.7.2010, 20:15 |
|||
|
||||
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
Проблема в том, что я это делаю для игрового сервера, поэтому разбирать строку как-то не очень хочется, так как это ударит по производительности...
- ХОТЯ, на фоне всего наверно это будет пыль в тумане... -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| HellStranger |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 1.9.2009 Репутация: нет Всего: -1 |
Найти два двоеточия в строке вообще-то влёт... cahr *NewFunctionname = strstr(FunctionName, "::") + 2. Всё! Работает моментально. |
|||
|
||||
| Abyx |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 2 Всего: 10 |
HellStranger, искать надо с конца.
алсо искать в рантайме - возможное падение производительности, а не "влет" |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |