July 8,2005

DirectShow filter 寫作

  • DirectShow filter is a win32 DLL.
  • Use regsvr32.exe to register filter, then u can find it in GraphEdit.
  • For building a DirectShow filter
    1. First, build base classes of DirectShow in the "DXSDK/Sample/DirectShow/BaseClasses".
    2. Include <streams.h> in BaseClasses dir.
    3. Use __stdcall in "calling convention" of VC++ project setting.
    4. Use multithread rulltime library.
    5. Add a xxx.def file into your project dir. The fomat should like below:
      LIBRARY xxx.ax
      EXPORTS
      DllMain PRIVATE
      DllGetClassObject PRIVATE
      DllCanUnloadNow PRIVATE
      DllRegisterServer PRIVATE
      DllUnregisterServer PRIVATE
    6. Link these libraries to project.

      Debug:

      Strmbasd.lib, Msvcrtd.lib, Winmm.lib

      Release:

      Strmbas.lib, Msvcrtd.lib, Winmm.lib

    7. Choose "ignore default library" in linker options of project setting.
    8. Declear a DLL Entry as follow
      extern "C" BOOL WINAPI DllEntryPoint(HINSTANCE, ULONG, LPVOID);
      BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
      {
      return DllEntryPoint((HINSTANCE)(hModule), dwReason, lpReserved);
      }



Posted by toki_kanno at 樂多Roodo! │09:16 │回應(0)引用(0)DirectShow
樂多分類:日記/一般 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/250808