Мне нужно имя файла только там, где макросы __FILE__
и __FILEW__
возвращают весь путь.
Я определил следующее:
#define __FILE_NAME_ONLY__ (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)
Я использую его следующим образом:
#define MY_TRACE( mask, format, ... ) \
GlobalTrace( mask, L"-[" __FILE_NAME_ONLY__ L":" format , __VA_ARGS__ )
Я получаю следующую ошибку:
ошибка C2064: терм не оценивается как функция, принимающая 1 аргумент
и когда я пробую следующие макросы:
#define __WIDE(_String) L ## _String
#define _WIDE(_String) __WIDE(_String)
следующее
#define MY_TRACE( mask, format, ... ) \
GlobalTrace( mask, L"-[" _WIDE(__FILE_NAME_ONLY__) L":" format , __VA_ARGS__ )
Я получаю: ошибка C2146: синтаксическая ошибка: отсутствует ')' перед идентификатором 'L', когда я фактически пытаюсь использовать макрос MY_TRACE
что мне не хватает? Спасибо