Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

2 problema (CStatic i Memory Leak)

[es] :: C/C++ programiranje :: 2 problema (CStatic i Memory Leak)

[ Pregleda: 3442 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milas

Član broj: 29337
Poruke: 588
*.smin.sezampro.yu.



+3 Profil

icon 2 problema (CStatic i Memory Leak)02.07.2004. u 15:17 - pre 240 meseci
Imam dva problema:

1. Kako da u CStatic kontroli postignem transparentnu pozadinu, ako na njoj iscrtavam neku slicicu (WinXP)?

2. Ako imam pokazivacku promenljivu int **map; u klasi CDialog, i u InitDialog je inicijalizujem:
for(int i=0;i<VELICINA_MAPE;i++)
{
map = new int[VELICINA_MAPE];
for(int j=0;j<VELICINA_MAPE;j++)
map[j] = neki_broj;
}
i nista ne radim sa njom, kada se program zavrsava dobijem poruku Memory leaks, i tu jos neke silne redove brojeva, i na kraju pise object dumped?!
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.et.tudelft.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: 2 problema (CStatic i Memory Leak)02.07.2004. u 15:25 - pre 240 meseci
2. map[ i ] = new int[VELICINA_MAPE];

Takođe sama promenljiva map (koja je pointer na niz pointera) mora da se alocira sa new, što treba uraditi pre ulaska u spoljašnju petlju.

f


 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net



+1001 Profil

icon Re: 2 problema (CStatic i Memory Leak)02.07.2004. u 15:42 - pre 240 meseci
A osim toga, sta si god alocirao sa 'new' treba na kraju da izbrises sa 'delete'. Ako
je u pitanju niz onda se za istu svrhu koristi 'delete []'
 
Odgovor na temu

milas

Član broj: 29337
Poruke: 588
195.252.80.*



+3 Profil

icon Re: 2 problema (CStatic i Memory Leak)02.07.2004. u 16:32 - pre 240 meseci
Izvinjavam se, nisam dobro preneo kod. Evo ovo je tacan kod:

Code:
int **map;
map = new int*[10];
for(int i=0;i<10;i++)
{
    map[i] = new int[10];
    for(int j=0;j<10;j++)
        map[i][j] = neki_broj;
}


a kada ga unistavam, to radim ovako:

Code:
for(int i = 0; i < 10; i++) delete map[i];

delete map; map = 0;


I uvek Visual C javlja sledece:

Detected memory leaks!
Dumping objects ->

Code:
linijedlg.cpp(104) : {68} normal block at 0x00BE5EA8, 404 bytes long.
 Data: <                > 0A 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 


i tako jedno desetak ovakvih linija, pa na kraju ispise:
Object dump complete. I to sve kada se izadje iz programa?!

Naravno linija koda 104 je upravo ova gde pravim nove nizove sa new!
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: 2 problema (CStatic i Memory Leak)02.07.2004. u 16:36 - pre 240 meseci
Pa čovek ti je lepo objasnio:

Citat:
milanche: A osim toga, sta si god alocirao sa 'new' treba na kraju da izbrises sa 'delete'. Ako
je u pitanju niz onda se za istu svrhu koristi 'delete []'

 
Odgovor na temu

milas

Član broj: 29337
Poruke: 588
*.ptt.yu.



+3 Profil

icon Re: 2 problema (CStatic i Memory Leak)02.07.2004. u 19:17 - pre 240 meseci
Hvala vam, to je resilo problem! A da li neko ima odgovor na moje prvo pitanje (sa providnosti kontrola)?
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.3.133.130.ptr.us.xo.net



+1001 Profil

icon Re: 2 problema (CStatic i Memory Leak)02.07.2004. u 22:59 - pre 240 meseci
Mogucnosti CStatic-a su vrlo skromne.

Ako hoces to sto si naveo (transparentnost uz slicicu), moraces da kreiras svoju
kontrolu kao public CWnd, pa da se onda poigras sa overridovanjem OnPaint( ) i
ostalih message handler-a.

Pronadji negde na web-u kod za TransparentBLT. Iako postoji takva funkcija u
VisualStudio bibliotekama, radi na razlicitim verzijama Windows-a sa promenljivom
srecom, tako da ces najverovatnije morati da je sam napises.
 
Odgovor na temu

milas

Član broj: 29337
Poruke: 588
*.ptt.yu.



+3 Profil

icon Re: 2 problema (CStatic i Memory Leak)03.07.2004. u 15:01 - pre 240 meseci
Da, ali ima jedna interesantna stvar sa klasom CPictureEx (autor Oleg Bykov) koja je izvedena iz CStatic, kada u nju ucitam GIF slicicu koja ima na sebi transparente delove, ja mogu da sa funkcijom SetBkColor menjam tu pozadinu, odnosno deo koji je u gif slici providan! Ali problem je sto ne mogu da postignem transparentnost tih delova!?

http://www.codeproject.com/bitmap/pictureex.asp
 
Odgovor na temu

milas

Član broj: 29337
Poruke: 588
*.smin.sezampro.yu.



+3 Profil

icon Re: 2 problema (CStatic i Memory Leak)03.07.2004. u 19:29 - pre 240 meseci
Uspeo sam da resim problem sa funkcijom TransparentBlt. Hvala!
 
Odgovor na temu

[es] :: C/C++ programiranje :: 2 problema (CStatic i Memory Leak)

[ Pregleda: 3442 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.