0

因此,我正在开发一个使用桌面复制 API 的应用程序,但是,当使用该IDXGIDevice界面并尝试访问其getParent方法时,我收到以下错误

类“IDXGIDevice”没有成员“GetParent”

像这样使用头文件和范围解析运算符时

DDAPI.h

#include <d3d11.h>
#include <dxgi1_2.h>

class DDAPI 
{
public:
    HRESULT InitDDA();
private:
    ID3D11Device* m_Device;
}

DDAPI.cpp

HRESULT DDAPI::InitDDA()
{
    IDXGIDevice* pDevice = nullptr;
    IDXGIAdapter* pAdapter = nullptr;

    m_Device->QueryInterface(__uuidof(IDXGIDevice), (void**)&pDevice);
    pDevice->GetParent(__uuidof(IDXGIAdapter), (void**)&pAdapter); // Errors Here
}

我已经初始化了 ID3D11Device m_Device

但是 ,如果我要像这样在 DDAPI.cpp 文件中创建类,它可以工作并且不会给我一个错误

class DDAPI
{
    ID3D11Device* m_Device;
    HRESULT InitDDA()
    {
        IDXGIDevice* pDevice = nullptr;
        IDXGIAdapter* pAdapter = nullptr;

        m_Device->QueryInterface(__uuidof(IDXGIDevice), (void**)&pDevice);
        pDevice->GetParent(__uuidof(IDXGIAdapter), (void**)&pAdapter);


    }
};

在第一个示例中,IntelliSense 没有显示所有其他IDXGIDevice具有的方法(仅包含基本 IUnknown 接口方法),但在第二个示例中显示

这可能只是一个 IntelliSense 错误,因为没有构建错误,但如果它显示为错误,我假设这意味着我可以用另一种方式做到这一点

4

0 回答 0