Textury - uvolnění z paměti pomocí SDL_FreeSurface() – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Textury - uvolnění z paměti pomocí SDL_FreeSurface() – C / C++ – Fórum – Programujte.comTextury - uvolnění z paměti pomocí SDL_FreeSurface() – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
vollf820
Stálý člen
7. 10. 2008   #1
-
0
-

Zdravím lidi, jsem tu zas. Předně bych chtěl podotknout, že už dělám pokroky v odhalování chyb a bugů v kódu, jen abyste si nemysleli, že se sem obracím s každou kravinou a pak mi nechtěli odepisovat :)

Začnu stručně. Pustil jsem se do OpenGL, v NeHe tutoriálech se používala knihovna glaux a někde sem se dočet že už je zastaralá, tak sem použil k nahrání textury SDL_Image (a povedlo se bez problémů).

Při použití glaux v tutoriálu ale uvolnovali pamět pomocí

if (TextureImage[0])// Pokud obrázek existuje

{
if (TextureImage[0]->data)// Pokud existují data obrázku
{
free(TextureImage[0]->data);// Uvolní paměť obrázku
}
free(TextureImage[0]);// Uvolní strukturu obrázku
}

Což mám za to já nemůžu použít, jelikož sem nahrál obrázek pomocí SDL_image. To nahrává obrázky do SDL_Surface (stále píšu moje domněnky, opravte mě pokud se pletu). Tak sem měl za to, že to musím logicky uvolnit pomocí SDL_FreeSurface().

Jenže kdyz tam dám (dodávám i nahrání obrázku pro ukázku)


SDL_Surface *IMG_Load ( char *Filename ) // Nahraje bitmapu
{
FILE *File=NULL;// Ukazatel na soubor
if (!Filename)// Byla předána cesta k souboru?
{
return NULL;// Pokud ne, konec
}
File=fopen(Filename,"r");// Otevření pro čtení
if (File)// Existuje soubor?
{
fclose(File);// Zavře ho
return IMG_Load(Filename);// Načte bitmapu a vrátí na ni ukazatel
}
return NULL;// Při chybě vrátíme NULL
}

int LoadGLTextures()// Loading bitmapy a konverze na texturu
{
int Status=FALSE;// Indikuje chyby
SDL_Surface *TextureImage[2];
memset(TextureImage,0,sizeof(void *)*1);// Vynuluje paměť
if (TextureImage[0]=IMG_Load("Data/flower.jpg"))// Nahraje bitmapu a kontroluje vzniklé chyby
{
Status=TRUE;// Vše je bez problémů

... //pokračování nějakého kódu

if (TextureImage[0])// Pokud obrázek existuje
{
SDL_FreeSurface(TextureImage[0]);// Uvolní strukturu obrázku
}

Tak mi to hlásí toto:

error LNK2001: unresolved external symbol _SDL_FreeSurface
1>C:\DATA\C++\OpenGL\OpenGL_2\Debug\OpenGL_2.exe : fatal error LNK1120: 1 unresolved externals



Řešil sem to tak, že sem tu paměť neuvolnoval ale vím že se to nemá tak se ptám. Je tam někde zakopanej pes a nemůžu na to přijít :(

Díky za reakce

Nahlásit jako SPAM
IP: 91.195.106.–
Reklama
Reklama
KIIV+42
God of flame
7. 10. 2008   #2
-
0
-

jenze ti to hlasi ze nemohl pri linkovani najit _SDL_FreeSurface a ne ze to nejde uvolnit

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
KIIV+42
God of flame
7. 10. 2008   #3
-
0
-

jen co na to rikaji na diskuzich:


Double-check you have sdl.lib in your Additional Dependencies under Linker -> Input in your project properties dialog. You'll need sdl.lib, sdlmain.lib and SDL_image.lib.

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
vollf820
Stálý člen
7. 10. 2008   #4
-
0
-

Ehm ... tak ted si klepu na čelo no :( ach jo ...

díky moc ... chyběla přilinkovaná SDL.lib měl sem tam jen SDL_image.lib

Nahlásit jako SPAM
IP: 91.195.106.–
KIIV+42
God of flame
7. 10. 2008   #5
-
0
-

tak stane se..

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 84 hostů

Podobná vlákna

Uvolneni pameti — založil BigBear

Uvolnění paměti — založil Martin

Uvolnění paměti / vektory — založil Ondřej

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý