سؤال

أحصل على الخطأ في العنوان في التعليمات البرمجية التالية:

  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;
}

في خط حذف [] المؤشرات

لا أعرف لماذا أحصل عليه، لا أعرف كيف أحصل عليه، هل لا يمكنني الحصول عليه؟

هل كانت مفيدة؟

المحلول

لا تخصص مساحة مؤشراتك. DirectX يقوم بتخصيص ثم يحرره عند الاتصال.

short* indices = NULL;
model->LockIndexBuffer(0, (LPVOID*)&indices);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top