c++ 重载函数“std::make_unique”没有与参数列表匹配的示例[已关闭]

vmdwslir  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(216)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
我正在为Dxgi做信息管理器,我想为我的消息分配内存,但它写了这个问题,任何其他解决方案

HRESULT hr;
        SIZE_T messageLength;
        // get the size of message i in yte
        GFX_THROW_NOINFO(pDxgiInfoQueue->GetMessage(DXGI_DEBUG_ALL, i, nullptr, &messageLength));
        
        auto bytes = std::make_unique<byte[]>(messageLength);

这是后面的代码

auto pMessage = reinterpret_cast<DXGI_INFO_QUEUE_MESSAGE*>(bytes.get());
    // get the message and push its description into the vector
    GFX_THROW_NOINFO(pDxgiInfoQueue->GetMessage(DXGI_DEBUG_ALL, i, pMessage, &messageLength));
    messages.emplace_back(pMessage->pDescription);
dgtucam1

dgtucam11#

我建议在这种情况下使用std::vector

std::vector<byte> bytes(messageLength);

后来

auto pMessage = reinterpret_cast<DXGI_INFO_QUEUE_MESSAGE*>(bytes.data());

相关问题