gpt4 book ai didi

c++ - D3D11 中的 E_INVALIDARG

转载 作者:行者123 更新时间:2023-11-28 02:28:11 25 4
gpt4 key购买 nike

我试图弄清楚为什么我在运行代码时总是收到 E_INVALIDARG 错误。

    ID3D11Buffer * cbPerObjectBuffer;
cbPerObject cbPerObj;

cbPerObjectBuffer = 0;

D3D11_BUFFER_DESC cbbd;
ZeroMemory( & cbbd, sizeof(D3D11_BUFFER_DESC));

cbbd.Usage = D3D11_USAGE_DEFAULT;
cbbd.ByteWidth = sizeof(cbPerObject);
cbbd.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
cbbd.CPUAccessFlags = 0;
cbbd.MiscFlags = 0;
cbbd.StructureByteStride = 0;

hr = device - > CreateBuffer( & cbbd, NULL, & cbPerObjectBuffer);
if (hr == E_INVALIDARG) {
MessageBox(0, L "[CBPEROBJECTBUFFER] An invalid parameter was passed to the returning function.", L "Error", MB_OK);
return;
} else if (hr == E_OUTOFMEMORY) {
MessageBox(0, L "[CBPEROBJECTBUFFER] Out of memory", L "Error", MB_OK);
return;
} else if (FAILED(hr)) {
MessageBox(0, L "[CBPEROBJECTBUFFER] An unknown error occured", L "Error", MB_OK);
return;
}

我在运行代码时不断收到 E_INVALIDARG 错误。我自己似乎无法弄清楚为什么会出现此错误。如果有人能指出我正确的方向,我将不胜感激! :)

最佳答案

我的猜测是“cbPerObject”不是 16 字节的倍数。常量缓冲区的大小必须是 16 字节的倍数。

关于c++ - D3D11 中的 E_INVALIDARG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29816275/

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