GeirGrusom Skrevet 2. november 2004 Del Skrevet 2. november 2004 Jeg jobber i Microsoft Visual C++ 7, og som dere har sett tidligere, så lager jeg et spill der. Problemet er at når jeg skal allokerer tekstur objekter (c_texture) så klikker programmet, men ikke hvis jeg kjører debug. Dette skjer enten jeg bruker new, eller malloc for å lage objektet. (det er malloc og new den styrter i, ikke constructor eller c_texture::loadTexture) Den har klaget på at _malloc og _calloc allerede var deklarert i LIBC og LIBCD, noe den begynte med etter at jeg installerte nVidia SDK 7 (som forøvrig er utrolig rotete) Har noen vært borti noe lignende? Lenke til kommentar
A_N_K Skrevet 2. november 2004 Del Skrevet 2. november 2004 Du har ikke gjort noen ugyldige frees/deletes tidligere? Det er ikke slik at programmet kræsjer i _malloc definert i nVidia SDK? Vet ikke hvilke slike programmer som finnes for Windows, men en dedikert minnedebugger er fin å ha (fanger opp uryddig aksess av minnet). Lenke til kommentar
kjetil7 Skrevet 2. november 2004 Del Skrevet 2. november 2004 (endret) Du bruker kanskje feil runtime-library? Hvis du blander f.eks. debug og ikke-debug utgaver av forskjellige biblioteker kan du få problemer. Hvordan linker du NVSDK? Jeg går ut fra at det ikke bruker COM, eller? Endret 2. november 2004 av kjetil7 Lenke til kommentar
GeirGrusom Skrevet 4. november 2004 Forfatter Del Skrevet 4. november 2004 Jeg bruker kun Windows Platform SDK og NVSDK... Jeg hadde en 'NVSDK\implib\release', jeg byttet til debug, men det hjalp ikke... Jeg frigjør ikke noe minne før alle teksturene er lastet (etter at jeg kjører glBindTexture frigjør jeg alle tekstur objekter) Det står ikke lenger at jeg har noen memory leaks (fant ut at jeg ikke hadde skrevet inn alle inheritance funksjoner i c_render_device, så da klikka det maks for c_opengl_device) Når jeg kjører native debug, kræsjer den når consoleOut(char *str, HDC dc) avsluttes... (som skriver til en linje i console vinduet til programmet) dette blir bare mystiskere og mystiskere... Lenke til kommentar
kjetil7 Skrevet 4. november 2004 Del Skrevet 4. november 2004 Prøv å sett runtime-library til "Multi-threaded Debug DLL" for debug eller "Multi-threaded DLL" for release. Da bør du ihvertfall bli kvitt LIBC/LIBCD advarselen. Hvis det ikke hjelper er det ikke noe annet utvei enn å begynne å debugge koden din... Lenke til kommentar
A_N_K Skrevet 4. november 2004 Del Skrevet 4. november 2004 Hva med verktøy av typen ElectricFence, som fanger ukurant aksess av minnet? Lenke til kommentar
GeirGrusom Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 Jeg tror det forekommer i load_png.cpp, når jeg frigjør lib_png objektene... Når jeg debugget, kom det fram at det var i HeapFree det hendte, det var ikke i malloc i det hele tatt, tenker det er i load_png.cpp, når jeg frigjør libpng data. Takker for all hjelp Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå