다음을 통해 공유


CBaseObject 클래스

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

CBaseObject 클래스는 DirectShow 개체를 구현하기 위한 추상 클래스입니다. COM(구성 요소 개체 모델) 개체를 구현하려면 CBaseObject에서 파생된 CUnknown 클래스를 사용합니다.

클래스 메서드 Description
CBaseObject 생성자 메서드입니다.
~CBaseObject 소멸자 메서드입니다.
ObjectsActive 활성 개체의 수를 검색합니다.

설명

대부분의 DirectShow 기본 클래스는 CBaseObject에서 파생됩니다. 이 클래스는 런타임 동안 모든 DirectShow 개체 수를 활성 상태로 유지하여 디버깅 지원을 제공합니다. 개체 수는 클래스 정적 멤버 변수에 저장됩니다.

class CBaseObject
{
private:
    static LONG m_cObjects;  // Total number of objects active. 
/* ... */
};

디버그 빌드에서 DLL은 개체 수가 0보다 큰 동안 언로드되면 어설션됩니다. 이렇게 하면 참조 계산 문제로 인한 누수를 더 쉽게 추적할 수 있습니다.

CBaseObject 생성자는 개체의 디버깅 이름인 하나의 인수를 사용합니다. 이 이름은 DLL의 전역 테이블에 저장됩니다. DbgDumpObjectRegister 함수는 DLL에서 활성 상태인 개체 목록의 형식을 지정하고 디버그 출력으로 보냅니다.

요구 사항

요구 사항
헤더
Combase.h(Streams.h 포함)
라이브러리
Strmbase.lib(소매 빌드);
Strmbasd.lib(디버그 빌드)

추가 정보

DirectShow 기본 클래스