首页 > 解决方案 > C++ 声明不兼容

问题描述

这些是我的交换链的代码文件,我使用的是 dx11 BTW,所以你们不要迷失我为什么使用 d3d 设备等。

//Header
#pragma once
class SwapChain
{
public:
    SwapChain();
    bool init(HWND hwnd, UINT width, UINT height);
    bool release();
    ~SwapChain();
private:
    IDXGISwapChain* m_swap_chain;
};
//cpp
#include "SwapChain.h"
#include "GraphicsEngine.h"

SwapChain::SwapChain()
{
}

bool SwapChain::init(HWND hwnd, UINT width, UINT height)
{
    ID3D11Device*device= GraphicsEngine::get()->m_d3d_device;
    DXGI_SWAP_CHAIN_DESC desc;
    ZeroMemory(&desc, sizeof(desc));
    desc.BufferCount = 1;
    desc.BufferDesc.Width = width;
    desc.BufferDesc.Height = height;
    desc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    desc.BufferDesc.RefreshRate.Numerator = 60;
    desc.BufferDesc.RefreshRate.Denominator = 1;
    desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
    desc.OutputWindow = hwnd;
    desc.SampleDesc.Count = 1;
    desc.SampleDesc.Quality = 0;
    desc.Windowed = TRUE;




    HRESULT hr=GraphicsEngine::get()->m_dxgi_factory->CreateSwapChain(device, &desc, &m_swap_chain);
    if (FAILED(hr))
    {
        return false;
    }
    
    return true;
}



bool SwapChain::release()
{
    return true;
}

SwapChain::~SwapChain()
{
}

我正在尝试为我的图形引擎制作一个交换链,并且我的参数与头文件中的参数相同。有人可以解释为什么我会收到这个错误吗?

严重性代码描述项目路径文件行抑制状态错误
(活动)E0147 声明与“bool SwapChain::init(hwnd, width, height)”不兼容(在“C:\Users\sudo\source\repos\ 的第 6 行声明) DX 3D\DX 3D\SwapChain.h") DX 3D C:\Users\sudo\source\repos\DX 3D\DX 3D C:\Users\sudo\source\repos\DX 3D\DX 3D\SwapChain.cpp 8

顺便说一句,我是 C++ 新手。

标签: c++

解决方案


推荐阅读