• 전체강좌

    다 알고 있는 Tip 이야기 2 - 프로그래밍 팁

    twitter facebook

    안녕하세요? 착한이입니다.

     

    지난 번에 이어 이번에도 알아 두면 유용한 팁 몇가지를 정리해 봅니다.

     

    1. #pragma comment 매크로

     

    프로그래밍을 하다 보면 라이브러리를 링크해야 하는 경우가 많습니다.

    project의 속성 메뉴에서 할 수도 있지만 여러 프로젝트를 할 경우에는 불편할 수 있습니다.

    #pragma comment(lib, "strmiids.lib") 를 사용하면 strmiids.lib 라이브러리를 파일을 쉽게 링크할 수 있습니다.

    소스 코드에 구현하면 SDK 마다 프로젝트 속성의 링크 란에 적어주어야 할 필요도 없습니다.

     

    2. 해상도 얻기

     

    미리 정의해서 사용할 수도 있으나 프로그램에서 얻어오면 좋을듯 합니다.

    GetSystemMetrics(SM_CXSCREEN) 와 GetSystemMetrics(SM_CYSCREEN) 으로 가로와 세로 해상도를 얻어

    올수 있습니다. 여기서 GetSystemMetrics 함수는 다양한 인자로 시스템의 다양한 정보를 얻어 올 수 있으므로

    알아 두면 유용할 듯 합니다.

     

    3. 데스크탑 윈도우의 핸들 얻기

     

    응용프로그램을 작성하다 보면 데스크탑 윈도우의 핸들이 필요한 경우도 있습니다.

    핸들을 얻어 오면 여러 정보를 얻을 수 있기 때문입니다.

    ::GetDesktopWindow() 함수를 사용하면 가능합니다.


    Directshow 프로그래밍을 하거나 필터를 제작할 때 보면 Class 를 상속 받아서 사용하는 경우가 많습니다.

     

    Baseclass 에서 구현되어 있거나 본인이 만든 Class를 상속 해서 또 다른 Class 를 만들기를 자주 합니다.

     

    이때 유용한 것이 __super 와 this 입니다.

     

    1. __super : 상위 Class 를 나타냅니다.

     

    CBaseInputPin Class 를 상속 받아 CMyInputPin Class 를 만들었다면 CMyInputPin 멤버 함수에서 __super 로 CBaseInputPin Class를 참조할 수 있습니다.

    C++ 에서 제공하는 기능이지만 Directshow 필터 제작할 때 사용하면 편한 듯 합니다.

     

    2. this : 다 아시겠지만 자기 자신을 나타냅니다.

     

    Directshow의 Class 를 보면 다중 상속도 받고 여러가지 Interface 까지 상속받아서 구현하므로 자기 자신의 Class에서 구현된

    멤버 함수나 멤버 변수를 참조 하고자 하면 편합니다. ^^

     

    이상입니다. 사실 프로그래밍을 할 때에는 여러가지를 함수와 라이브러리가 사용되지만

    모두 알 수는 없지만 무슨 기능을 하는지 어디에 예제가 있는지 정도는 알아 두면 좋을 듯 합니다.

    그럼 다음에 찾아 뵙겠습니다.