كود الذاكرة التسريبات، ويبدو أن تكون قادمة من ID3DXBuffer
-
05-07-2019 - |
سؤال
وأنا تحميل تظليل بما يلي:
ID3DXBuffer* errors = 0;
ID3DXEffect* effect = 0;
HR(D3DXCreateEffectFromFile(
gd3dDevice, L"Shader.fx", 0, 0,
D3DXSHADER_DEBUG|D3DXSHADER_SKIPOPTIMIZATION,
0, &effect, &errors));
for (int i = 0; i < 3; i++) {
if(errors) {
errors->Release();
if (effect)
effect->Release();
errors = 0;
HR(D3DXCreateEffectFromFile(gd3dDevice, L"Shader.fx",
0, 0, D3DXSHADER_DEBUG, 0, effect, &errors));
}
else
break;
}
والتي تحاول تحميل تظليل وإذا كان يحصل على خطأ / تحذير يحاول مرة أخرى 3 مرات أكثر قبل التخلي.
والآن لقد وجدت عندما أغلق D3DX تطبيق يعطيني الرسالة التالية:
وD3DX: الكشف عن تسرب الذاكرة: 2 مخصصات unfreed (486 بايت)
وهذا يحدث فقط عندما تكون هناك أخطاء (أي أنه ينتقل إلى حلقة). أنا حقا لست متأكدا لماذا يحدث هذا، أي أفكار؟
وOK I ثابتة، كان مجرد مسألة منطق، 'خطأ' لم يكن لديك "الافراج" دعا ذلك في الثالث محاولة بالتالي هذه المسألة.
المحلول 2
وOK I ثابتة، كان مجرد مسألة منطق، 'خطأ' لم يكن لديك "الافراج" دعا ذلك في الثالث محاولة بالتالي هذه المسألة.
نصائح أخرى
ملحوظة: ينبغي الإفراج ID3DXBuffer حتى عندما DX وظيفة (. السابقين D3DXCreateEffectFromFile) لم تفشل
لا تنتمي إلى StackOverflow