Archive for May, 2009
C++ 현재 함수이름 얻기
[옛날 블로그 글입니다. 2009.05.16]
C에는 현재 함수의 이름을 알려주는 __func__라는 식별자가 미리 정의되어 있었네요. (C99) C++는 컴파일러마다 조금씩 다른데, MSVC는 __FUNCTION__이네요. 아래처럼하면 wchar_t* 버전도 쉽게 만들 수 있습니다. (yvals.h)
#define _STR2WSTR(str) L##str
#define STR2WSTR( str ) _STR2WSTR( str )
#define __FUNCTIONW__ STR2WSTR(__FUNCTION__)
MSDN보면 데코레이션된 이름을 반환하는 매크로나, 시그니처를 반환하는 매크로도 있네요. (__FUNCDNAME__, __FUNCSIG__)
http://msdn.microsoft.com/en-us/library/b0084kay.aspx
boost의 current_function.hpp를 보시면, 컴파일러별로 죄다 정의해둔 것도 있네요.
http://www.boost.org/doc/libs/1_38_0/boost/current_function.hpp
현재경로를 환경변수에 넣기
[옛날 블로그 글입니다. 2009.05.14]
C++ 프로젝트를 세팅하다보면 환경변수를 쓸 일이 생기기도 하는데요. 현재 디렉토리의 풀 패스를 환경변수에 넣는 스크립트입니다. ( 배치파일에 넣을 때는 아래처럼, cmd.exe에서 칠때는 %%a를 %a로 바꿔야)
for /f “tokens=1* delims=” %%a in ('cd') do set MY_VAR=%%a
윈도우즈 쉘에서는 'cd'라고 치면 현재 경로의 풀패스가 나오는데요, 그걸 받아다가 MY_VAR에 넣는 겁니다. 유닉스 계열이라면 백틱(“)과 pwd를 써서 더 간단히 되겠네요.
더 쉬운 방법 있으면 코멘트 부탁~