C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[6455] Re:Re:메모리 해제가 없는것 같네요 ^^
EmptySpear [] 2341 읽음    2001-03-30 11:39
조경달 님이 쓰신 글 :
: //잘 돌다가 마우스를 움직이거나 하면 시스템 리소스가 없다고 하니....
:
:
: while(1) //이 스레드는 계속 캡춰만 합니다.
: {
: HDC dc = GetDC(0);
:  Graphics::TCanvas *ScreenCanvas = new Graphics::TCanvas;
:  Bitmap=  new Graphics::TBitmap;
:   ScreenCanvas->Handle=dc;
:   Bitmap->Height=Screen->Height;
:   Bitmap->Width=Screen->Width;
: while(1)
: {
:   Sleep(1000);
:   sx=sy=0;
:   lx=Screen->Width/2;
:   ly=Screen->Height/2;
:
:   rect = Rect(0,0,lx-sx,ly-sy);
:   rect2 = Rect(sx,sy,lx,ly);
:   Bitmap->Canvas->CopyRect(rect,ScreenCanvas,rect2);
:
:   tmsFull->Position=0;
:   TJPEGImage *jp = new TJPEGImage();
:   try
:   {
:     jp->Assign(Bitmap);
:     jp->SaveToStream(tmsFull);
:   }
:   __finally
:   {
:     delete jp;
:   }
: }//while(1)
:
:

안녕하세요 ..

님의 소스에는 무한 루프내에 new로 생성한 객체가 3군데 정도 있습니다

그런데 생성만 하지 해제 하는 곳이 없네요

루프속에서 계속 메모리를 잡아먹으니

리소스가 부족메시지가 나오지 싶군요

Bitmap이나 JpgImage는 스레드 생성자에서 멤버변수로 생성하고

소멸자에서 delete하시고

화면 DC는 굳이 TCanvas에 매핑하지 말고 그대로 사용하셔도 될듯하네요^^

그럼~~ 즐푸하시길.

+ -

관련 글 리스트
6437 스레드를 사용중 에러가...(고수님 SOS) 조경달 2240 2001/03/29
6454     Re:스레드를 사용중 에러가...(고수님 SOS) 신현섭 2457 2001/03/30
6453     Re:소스도 올립니다. 조경달 2324 2001/03/30
6455         Re:Re:메모리 해제가 없는것 같네요 ^^ EmptySpear 2341 2001/03/30
6450     부족하지만~ 답변 빌더소녀 2359 2001/03/30
6449     Re:스레드를 사용중 에러가...(고수님 SOS) 한동훈 2249 2001/03/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.