(自己学习,高手勿进 一)编译DirectShow Filters
时间:2011-04-11 来源:面壁居士
微软推荐使用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预处理命令