Xoliul
Legacy Member
Ik probere het hier eens, ik zit compleet vast voor mijn herexamen C++ en mijn docent antwoord niet terwijl de tijd dringt. Dit probleem gaat mijn petje te boven, hopelijk kan iemand mij hier iets helpen. Ik gebruik VS2005.
Ik heb de volgende functie in een klasse:
Probleem is nu, die pmaterial wordt nooit aangemaakt.
Paar screens van als ik breakpoints zet:
Prog runt, breakpoint staat waar de pointer wordt ingevuld. Let erop dat in de lijst met Locals onderaan, geen spoor van pmaterial te zien is, wel van alle andere tijdelijke variabelen.
hier heb ik één keer op F10 geduwt. Nog steeds geen pmaterial te zien, het lijkt alsof de pointer van tiletex wel ingevuld wordt ofzo, maar dat lijkt me echt helemaal te gek.
Gevolg is dat vanaf dat de pmaterial pointer wordt aangesproken, ik een standaard exception krijg van een niet ingevulde pointer.
Ik heb al met F11 jump into gedaan voor de constructor van HLSLMaterial; dit werkt en verloopt voor zover ik zie zonder problemen. Ook al 3 keer Clean solution + Rebuild All gedaan.
Eerder had ik net zo'n probleem in deze klasse met een tstring die ik op de stack maakte in een functie: het was compleet onmogelijk die in te vullen, hij bleef <bad_ptr> staan. Oplossing was hem in de .h te declareren, en dan aan te spreken in de functie. Kan ik in dit geval echter niet doen, omdat dan voor zover ik zie de pointer altijd overschreven gaat worden ? Zowiezo wil ik dit fixed.
Ik heb de volgende functie in een klasse:
Code:
void TileListParser::AddTile2List(std::wstring attname, std::wstring value)
{
if(attname==_T("name"))
{
HLSLMaterial* pmaterial= new HLSLMaterial(m_pTerrainEffect);
tstring texpath;
tstringstream buffer;
buffer<<_T("Level/Tiles/");
buffer<<value;
buffer<<_T(".tga");
buffer>>texpath;
LPDIRECT3DTEXTURE9 tiletex;
if(SUCCEEDED( D3DXCreateTextureFromFile(m_pd3dDevice,texpath.c_str(),&tiletex) ))
{
pmaterial->SetParameter(_T("diffuseTexture"),tiletex);
}
m_MaterialMap->insert(make_pair(value,pmaterial));
}
}
Probleem is nu, die pmaterial wordt nooit aangemaakt.
Paar screens van als ik breakpoints zet:
Prog runt, breakpoint staat waar de pointer wordt ingevuld. Let erop dat in de lijst met Locals onderaan, geen spoor van pmaterial te zien is, wel van alle andere tijdelijke variabelen.
hier heb ik één keer op F10 geduwt. Nog steeds geen pmaterial te zien, het lijkt alsof de pointer van tiletex wel ingevuld wordt ofzo, maar dat lijkt me echt helemaal te gek.
Gevolg is dat vanaf dat de pmaterial pointer wordt aangesproken, ik een standaard exception krijg van een niet ingevulde pointer.
Ik heb al met F11 jump into gedaan voor de constructor van HLSLMaterial; dit werkt en verloopt voor zover ik zie zonder problemen. Ook al 3 keer Clean solution + Rebuild All gedaan.
Eerder had ik net zo'n probleem in deze klasse met een tstring die ik op de stack maakte in een functie: het was compleet onmogelijk die in te vullen, hij bleef <bad_ptr> staan. Oplossing was hem in de .h te declareren, en dan aan te spreken in de functie. Kan ik in dit geval echter niet doen, omdat dan voor zover ik zie de pointer altijd overschreven gaat worden ? Zowiezo wil ik dit fixed.

. Ik ken mensen die gebuisd zijn vorig jaar door dergelijke zaken bij ons
.