none
error LNK2019: 无法解析的外部符号 _MFEnumDeviceSources@12 RRS feed

  • 问题

  • #include "Mfidl.h"
    #include "Mfapi.h"
    #include <mferror.h>
    	HRESULT CreateVideoCaptureDevice(IMFMediaSource **ppSource)
    {
        *ppSource = NULL;
    
        UINT32 count = 0;
    
        IMFAttributes *pConfig = NULL;
        IMFActivate **ppDevices = NULL;
    
        // Create an attribute store to hold the search criteria.
        HRESULT hr = MFCreateAttributes(&pConfig, 1);
    
        // Request video capture devices.
        if (SUCCEEDED(hr))
        {
            hr = pConfig->SetGUID(
                MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 
                MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
                );
        }
    
        // Enumerate the devices,
        if (SUCCEEDED(hr))
        {
            hr = MFEnumDeviceSources(pConfig, &ppDevices, &count);
        }
    
        // Create a media source for the first device in the list.
        if (SUCCEEDED(hr))
        {
            if (count > 0)
            {
                hr = ppDevices[0]->ActivateObject(IID_PPV_ARGS(ppSource));
            }
            else
            {
                hr = MF_E_NOT_FOUND;
            }
        }
    
        for (DWORD i = 0; i < count; i++)
        {
            ppDevices[i]->Release();
        }
        CoTaskMemFree(ppDevices);
        return hr;
    }
    出错代码如上,其中MFEnumDeviceSources在头文件Mfidl.h中,问题的原因是不是缺少什么库没有加载啊。
    2014年9月3日 5:11

答案

  • 问题解决了是在 Project->Properties->Configuration Properties->C/C++->General->Additional Include Directories to add additional include directories添加了mfplat.lib;;%(AdditionalDependencies)
    • 已标记为答案 KUN_WANG 2014年9月3日 6:26
    2014年9月3日 6:26