gpt4 book ai didi

c++ - IMFSourceReaderCallback : base class undefined

转载 作者:行者123 更新时间:2023-11-30 05:26:02 27 4
gpt4 key购买 nike

我在通过 Media Foundation 从摄像机读取样本时遇到一些问题。我正在按照 Windows SDK 示例文件夹 MFCaptureToFile 中的示例进行操作。

据我所知,我的类已正确设置为继承抽象 IMFSourceReaderCallback 类:

#include <windows.h>
#include <mfapi.h>
#include <mfidl.h>
#include <mfreadwrite.h>

class WinCapture : public IMFSourceReaderCallback{

public:

static HRESULT CreateInstance(
std::string deviceName,
WinCapture **winCapture
);

// IUnknown methods
STDMETHODIMP QueryInterface(REFIID iid, void** ppv);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();

// IMFSourceReaderCallback methods
STDMETHODIMP OnReadSample(
HRESULT hrStatus,
DWORD dwStreamIndex,
DWORD dwStreamFlags,
LONGLONG llTimestamp,
IMFSample *pSample
);

STDMETHODIMP OnEvent(DWORD, IMFMediaEvent *)
{
return S_OK;
}

STDMETHODIMP OnFlush(DWORD)
{
return S_OK;
}

如果我自己编译这段代码,它编译得很好。但是,如果我想在更大的项目中使用此类,则会出现错误。是否有关于我如何在其他文件中包含 winCapture.h 引发此错误的内容?为什么它会自行编译而不是在更大项目的上下文中编译?

我想存在循环依赖,但我不确定如何追踪它。它肯定不是我自己制作的,它更有可能隐藏在某处包含的 header 中。

最佳答案

解决方案似乎是使用

#define WIN32_LEAN_AND_MEAN

在头文件中并将此头文件的所有包含移动到包含它的任何其他文件中的任何#include 指令的顶部。该代码现在可以独立编译,也可以在更大项目的上下文中编译。

关于c++ - IMFSourceReaderCallback : base class undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37998380/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com