Assertion Fehler: _BLOCK_TYPE_IS_VALID (pHead-> nBlockUse)
Frage
Ich erhalte den Fehler im Titel im folgenden Code:
std::vector<short> GetIndicesFromID3DXMesh(ID3DXMesh* model)
{
//LPVOID * ppData;
DWORD stride = sizeof(short);
BYTE* ibptr = NULL;
short* indices = new short[model->GetNumFaces() * 3];
std::vector<short> copy;
model->LockIndexBuffer(0, (LPVOID*)&indices);
for(size_t i = 0; i < model->GetNumFaces() * 3; i++)
{
copy.push_back(indices[i]);
}
model->UnlockIndexBuffer();
delete []indices;
return copy;
}
In der Zeile löschen [] Indizes
Ich weiß nicht, warum ich es, ich weiß nicht, wie ich es bekommen, kann ich es nicht bekommen?
Lösung
Sie den Raum für Ihren Indizes nicht zuordnen. DirectX funktioniert die Zuteilung und dann befreit es, wenn Sie Unlock nennen.
short* indices = NULL;
model->LockIndexBuffer(0, (LPVOID*)&indices);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow