1.#pragma message는 몰라도 되지만, 구경만 해보자.
사용방법은 #pragma message( messagestring ) 이다.
//Test1.cpp
void main() {
#pragma message( "I have got to lose my love handles." )
}
를 컴파일하면 Build창(컴파일 결과-warning/error가 나오는 창)에
--------------------Configuration: Test1 - Win32 Debug--------------------
Compiling...
Test1.cpp
I have got to lose my love handles.
Linking...
Test1.exe - 0 error(s), 0 warning(s)
이 나오는 것을 알 수 있다. 이런 간단한 역할을 하는 것이 #pragma message이다.
연인에게 소스코드를 선물(^^)로 줄 때 간단한 메시지를 #pragma message에 넣어서 보내는데 쓸 수 있을까나? 사실 몇몇의 프로그래머들은 다양한 목적(이전 작업시간, 다음에 할일, 다음에 작업할 위치지정 등 표시)으로 사용을 하기도 하지만, 내가 볼 때는 사랑의 메시지 외에는 별 필요가 없을 것 같다. 바람님에게 추천한다. ^^
2.#pragma comment는 매우 많이 사용되니 알아두면 편리하다.
프로그램을 작성할 때 다양한 라이브러리를 사용한다. 이러한 라이브러리를 지정하기 위해서 일반적으로 Project>Settings=>Link>Object/library modules:에 추가를 한다.
만일 Debug 모드에서 ad.lib, Release 모드에서 a.lib를 이용한다면, 아래와 같이 두 번에 걸쳐서 설정을 해주어야 한다. 얼마나 불편한가. 불편하지 않을 수도 있지만. ^^. 또한 소스를 배포할 때 이에 대한 설명을 문서에 달아야 한다. 보기에 좋지 않다. 사람마다 다르겠지만. ^^.
이러한 일을 소스코드에서 처리를 하는 역할이 #pragma comment이다.
만일 소스코드에 아래와 같이 작성을 하면 위와 동일한 것이다.
#ifdef _DEBUG
#pragma comment( lib, "ad.lib" )
#else
#pragma comment( lib, "a.lib" )
#endif
사용방법은 #pragma comment( "comment-type" [, commentstring] )이다.
이때 comment-type은 compiler, exestr, lib, linker, user가 될 수 있고, 그에 따라 commentstring이 달라진다. lib와 linker가 특히 많이 사용이 되는데, lib는 방금 배운 것이 전부이고, linker는 상당히 복잡한 개념을 알아야 되기 때문에 이후 관련 분야를 설명한 뒤에 다시 설명하겠다.
나는 보통 stdafx.h에 아래와 같이 설정을 해두고 OpenCV, Camera를 잘 사용하고 있다.
#pragma comment( lib, "./common_opencv/lib/cv.lib" )
#pragma comment( lib, "./common_opencv/lib/highgui.lib" )
#pragma comment( lib, "vfw32.lib" )
이제 #pragma comment( lib, "lib_name" ) 팍팍 사용하도록 하자.
댓글 없음:
댓글 쓰기