(自己学习,高手勿进 一)编译DirectShow Filters

微软推荐使用DirectShow基础类库来开发DirectShow Filter。可以安装下面步骤编译基础类库。

1、编译基础类库(SDK安装目录下的子文件夹Samples\Multimedia\DirectShow\BaseClasses),可编译成两种版本(分发版本:Strmbase.lib 和调试版本:Strmbasd.lib——在我的windows 7上还有另外两种版本:多字节分发版本和多字节调试版本)

2、包含头文件Streams.h

3、使用__stdcall 约定

4、酌情使用多线程C运行库)

5、包含一个定义文件(.def)用来导出Dll函数。例如 输入文件名为 MYFILTER.DLL

         LIBRARY MYFILTER.DLL

         EXPORTS

                      DllMain                 PRIVATE

                      DllGetClassObject  PRIVATE

                      DllCanUnloadNow   PRIVATE

                      DllRegisterServer   PRIVATE

                      DllUnRegisterServer  PRIVATE

6、链接下面的库

          Debug版本:Strmbasd.lib  Msvcrtd.lib Winmm.lib

          Release版本:Strmbase.lib  Msvcrtd.lib Winmm.lib

7、在链接选项中 选取 “ignore default libraries”

8、声明DLL入口:

        extern "C" BOOL WINAPI DllEntryPoint(HINSTANCE,ULONG,LPVOID);

        BOOL APIENTRY DllMain(HANDLE hModule,DWORD dwReason,LPVOID lpReserved)

        {

               return DllEntryPoint((HINSTANCE)(hModule),dwReason,lpReserved);

         }

注意:DirectShow 9.0以前的版本,如果是Debug版本,必须声明DEBUG预处理命令

posted @ 2011-04-11 20:09  程序员阿呆  阅读(838)  评论(0编辑  收藏  举报