Gå til innhold

Problem med allokering


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 av kjetil7
Lenke til kommentar

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... :mad:

Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...