__FILE__
및 __FILEW__
매크로가 전체 경로를 반환하는 경우에만 파일 이름이 필요합니다.__FILE__의 기본 파일 이름
#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 MY_TRACE(mask, format, ...) \
GlobalTrace(mask, L"-[" _WIDE(__FILE_NAME_ONLY__) L":" format , __VA_ARGS__)
을 다음과 같이
#define __WIDE(_String) L ## _String
#define _WIDE(_String) __WIDE(_String)
를 내가 얻을 : 오류 C2146 : 구문 오류 : 나는 실제로하려고 할 때 식별자 앞에 ')' 'L' 누락 MY_TRACE 매크로를 사용하십시오.
무엇이 누락 되었습니까? 감사합니다
넓은 문자열 –
때문에 '__FILEW__'을 사용하기 훨씬 전에 @Saher 상관 없습니다. 둘 다 문자열 리터럴로 평가됩니다. 문자열의 다른 종류. –
그래서'__FILE_NAME_ONLY __ (__ FILE __)'을 해결하지 못했다면 –