如题,请给出具体代码!谢谢您!

解决方案 »

  1.   

    char szDeviceName[80];
    char szDeviceVersion[80];for (wIndex = 0; wIndex < 10; wIndex++) 
    {
        if (capGetDriverDescription (wIndex, szDeviceName, 
            sizeof (szDeviceName), szDeviceVersion, 
            sizeof (szDeviceVersion)) 
        {
            // Append name to list of installed capture drivers
            // and then let the user select a driver to use.
        }
    }
      

  2.   

    modena(非云):请问该程序如何得到装了多少块视频采集卡?
      

  3.   

    用DirectShow做:    ICreateDevEnum *pCreateDevEnum;
        hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,
    IID_ICreateDevEnum, (void**)&pCreateDevEnum);
        if (hr != NOERROR)
    {
    AfxMessageBox("检测设备出错!");
    return FALSE;
    }

        IEnumMoniker *pEm;
        hr = pCreateDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory,
    &pEm, 0);
    if (hr != NOERROR) 
    {
    AfxMessageBox("未检测到视频捕捉设备!");
    goto EnumAudio;
        }

        pEm->Reset();
        ULONG cFetched;
        IMoniker *pM;
        while (hr = pEm->Next(1, &pM, &cFetched), hr == S_OK)
        {
    IPropertyBag *pBag;
    hr = pM->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pBag);
    if (SUCCEEDED(hr)) 
    {
    VARIANT var;
    var.vt = VT_BSTR;
    hr = pBag->Read(L"FriendlyName", &var, NULL);
    if (hr == NOERROR) 
    {
    SysFreeString(var.bstrVal);
    ASSERT(rpmVideo[uIndex] == 0);
    rpmVideo[uIndex] = pM;
    pM->AddRef();
    }
    pBag->Release();
    }
    pM->Release();
    uIndex++;
        }
        pEm->Release();
        
        系统中有uIndex个卡。
      

  4.   

    int  nTotalCount = 0;
    char szDeviceName[80];
    char szDeviceVersion[80];for (wIndex = 0; wIndex < 10; wIndex++) 
    {
        if (capGetDriverDescription (wIndex, szDeviceName, 
            sizeof (szDeviceName), szDeviceVersion, 
            sizeof (szDeviceVersion)) 
        {
            nTotalCount++;
            // Append name to list of installed capture drivers
            // and then let the user select a driver to use.
        }
    }// 此时nTotalCount就是你机器上有多少快视频采集卡
    //
      

  5.   

    modena(非云):为什么系统总是提醒这样一个错误:
    error C2065: 'capGetDriverDescription' : undeclared identifier
    请问怎么解决!
      

  6.   

    #include <Vfw.h>
    Link with vfw32.lib
      

  7.   

    modena:非常感谢您的帮助!我按照您教我的方法做了,并且调试也通过了,但很奇怪的是nTotalCount显示出来的采集卡数和我实际安装的采集卡数不一样!数据对比如下:
    实际采集卡数   nTotalCount显示的数据
         1                  2
         2                  4
         3                  4
    请帮我分析一下原因,如何解决,谢谢!
      

  8.   

    对不起,上面那条回复说错了,经过我的测试,我发现,不管实际安装多少块视频采集卡,nTotalCount显示的数据总为4,太奇怪了,我该怎么做呀?
      

  9.   

    很不幸,我用相同的代码在3台机器上测试(1台没有/1台1块/1台2块捕捉卡:VC100/Osprey200),结果都是正确的,而且这段代码是从MSDN中COPY的,我想应该没有问题,我不明白为何你那边不正确,你调试一下看看那4次nTotalCount++了,此时的szDeviceName是什么?另外楼上使用DirectShow方法也应该可以获取的,你可以试试!
      

  10.   

    我是最前面的四次nTotalCount增加的,前面三次szDeviceName为“Philips SAA7146 Video Capture”,第四次szDeviceName为“Microsoft WDM Image Capture”,实在不清楚出了什么问题?大家帮忙分析一下?谢谢!看我应该怎么做?