首先,我的系统是win7的,据说win7自带directX 所以不用再另外下载directX。 在头文件中添加 #pragma comment (lib,"Strmiids") #pragma comment (lib,"quartz") #include <Dshow.h> 所有DirectShow应用程序必备 首先:查找视频设备列表 void CCameraDlg::GetAllCapDevices() { UINT uIndex=0; //释放视频设备列表 for(int i=0;i<NUMELMS(m_rgpmVideoMenu);i++){ IMonRelease(m_rgpmVideoMenu[i]); } //枚举所有的视频捕捉设备 ICreateDevEnum *pCreateDevEnum=0; HRESULT hr=CoCreateInstance(CLSID_SystemDeviceEnum,NULL,CLSCTX_INPROC_SERVER, IID_ICreateDevEnum,(void**)&pCreateDevEnum);//创建所有系统设备枚举 if (hr!=NOERROR) { Error(TEXT("Error Creatint Device Enumerator")); return; } IEnumMoniker *pEm=0; hr=pCreateDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory,&pEm,0);//筛选出视频输入设备 if (hr!=NOER