디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

DX 2D비행슈팅강좌 14. 메모리릭 찾기

Vita500갤로그로 이동합니다. 2009.07.15 01:45:30
조회 1085 추천 0 댓글 5


===== DX 2D비행슈팅강좌 ======
===== 14. 메모리릭 찾기 =====
프로그램개발을 시작할때, 메모리릭을 검출할수있는
상태로 만들어 두는것이 좋다.
그중 여기에서는 Visual Leak Detector를 사용한다.
무료이고, VS2008에서 WinApi나 MFC환경에서
잘동작한다.
XP32환경에서는 1.9h(Beta), 1.0은 잘동작했지만,
Vista64환경에서는 1.0만 잘동작하였다.
XP32환경이라면, 1.9h를 권한다.




#XP32비트 사용자
1. 1.9h 다운로드
2. 1.9h 설치
3. 1.9h 라이브러리 등록

#XP32비트, Vista64비트등 모든 사용자
4. 1.0 다운로드
5. 1.0 압축풀기
6. 1.0 라이브러리 등록

#공통
7. 영문경로로 옮기기
8. 코드에 포함시키기
9. 메모리릭 찾기

#슈팅게임에서의 메모리해제.
10. 이미지정보해제
11. Character메모리 해제
12. 현실적인 제안








#XP32비트 사용자

1. 1.9h 다운로드
http://dmoulding.googlepages.com/vld-1.9h-setup.exe



2. 1.9h 설치
Next, Next, Next



3. 1.9h 라이브러리 등록
도구:옵션프로젝트 및 솔루션:VC++ 디렉터리:다음 파일의 디렉터리 표시

포함파일에 C:\\Program Files\\Visual Leak Detector\\include
라이브러리 파일에 C:\\Program Files\\Visual Leak Detector\\lib
를 등록하고 확인을 누른다.



#XP32비트, Vista64비트등 모든 사용자

4. 1.0 다운로드
http://dmoulding.googlepages.com/vld-10.zip



5. 1.0 압축풀기
C:\\Program Files\\Visual Leak Detector에 압축을 푼다.



6. 1.0 라이브러리 등록
도구:옵션프로젝트 및 솔루션:VC++ 디렉터리:다음 파일의 디렉터리 표시

포함파일에 C:\\Program Files\\Visual Leak Detector
라이브러리 파일에 C:\\Program Files\\Visual Leak Detector
를 등록하고 확인을 누른다.


#공통

7. 영문경로로 옮기기
프로그램소스경로에 한글이 포함되어있으면, 
메모리릭이 난 파일을 표시하지 못한다.
경로를 영문으로 수정하던지, 옮긴다.



8. 코드에 포함시키기
stdafx.h파일의 가장 하단에 #include "vld.h"를 넣는다.
다른것을 추가시키더라도, #include "vld.h"위에 위에 놓아야 한다.




9. 메모리릭 찾기
F5를 누르고, 프로그램을 종료하면, 출력창에 메모리릭을 보여준다.
그것을 클릭하면, 메모리릭이 발생한 지점으로 이동해준다.
그리고, 정상적으로 해제해주는 코드를 넣는다.
만약, 메모리릭이 일어났다고 나오지만, 릭이 일어난지점을
표시해주지 못할경우 dbghelp.dll파일을 디버그의 실행파일이 있는곳에 둔다.




#슈팅게임에서의 메모리해제.
10. 이미지정보해제
VOID Character::Release(VOID)
{
        INT iAni_size = _vImages.size();
        INT iImage_size = 0;

        for (INT i=0; i<iAni_size; ++i)
        {
                iImage_size = _vImages[i].size();
                for (INT k=0; k<iImage_size; ++k)
                {
                        delete _vImages[i][k];
                }
        }

}

슈팅게임에서 사용된 리소스는 모두 해제하지 않아서 메모리릭 발생을 보여준다.
Release함수에 메모리에서 해제해주는 코드를 넣는다.





11. Character메모리 해제
_Bullet_texture = BulletImage.Texture;
_Enemy_texture = EnemyImage->Texture;
_Player_texture = PlayerImage.Texture;


for (INT i=0; i<100; ++i)
{
        _Bullet[i].Release();
}
if (_Bullet_texture)
        _Bullet_texture->Release();        


_Enemy.Release();
if (_Enemy_texture)
        _Enemy_texture->Release();

_Player.Release();
if (_Player_texture)
        _Player_texture->Release();


Character의 Release를 호출해서 메모리를 해제하고
텍스쳐는 공유해서 사용하므로, 텍스쳐를 읽을때 미리 받아놓았다가,
Character외부에서 반환한다.



12. 현실적인 제안
Visual Leak Detector를 사용하면 디버그모드가 많이 느려진다.
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
사용시에는, 이것만 켜놓고, 메모리릭발생이 뜨면, 그때 Visual Leak Detector를 활성화한다.

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
265714 오늘따라 붉은별 OS가 생각나네 [3] 분당살람갤로그로 이동합니다. 11.08.22 98 0
265711 야근 is my life~ [2] blackd갤로그로 이동합니다. 11.08.22 80 0
265710 겜프로그래밍 회사 취직하려면 [5] 나무심(183.96) 11.08.22 147 0
265708 근데 정부는 가만있는게 나아. [6] (112.146) 11.08.22 146 0
265707 야 나 진짜 큰일이다. [2] 좋은아버지갤로그로 이동합니다. 11.08.22 59 0
265706 오랜간만에 왔는데 ㅋㅋ 지금까지 있는 갤러있네 ㅋㅋ [5] C_Perl갤로그로 이동합니다. 11.08.22 74 0
265705 이거 딱봐도 구글이 모토사니까 정부가 지레 겁먹고 막던지는거네 ㅋㅋ [1] (211.222) 11.08.22 66 0
265704 os만드는게 그렇게 힘드냐??? [6] 컴돌이(180.227) 11.08.22 169 0
265702 티맥스소프트 어떄? ㅇㅅㅇ(121.164) 11.08.22 107 0
265701 졸프때 꼭 한팀은 주차관리시스템 이런거 하더라 [4] 개뭉이갤로그로 이동합니다. 11.08.22 117 0
265700 솔직히 PC용 OS는 오바고.. 모바일OS는 가능성이 있긴 할꺼같다.. ㅎㅎ(218.155) 11.08.22 49 0
265699 우리나라는 OS 죽었다 깨어나도 못만든다... [3] ㅎㅎ(218.155) 11.08.22 143 0
265698 회사에서는 프로그램 제작할때 무슨 버젼씀? [3] (61.72) 11.08.22 94 0
265695 우리나라도 노력하면 윈도우 3.1정도는 가능하지않겠나 ㅇㅇ(61.77) 11.08.22 52 0
265694 근데 정부지원하에 개발됬던 티맥스윈도우는 어떻게 됐나.. [5] ㅎㅎ(218.155) 11.08.22 163 0
265692 [C++] reinterpret_cast의 무서움 [1] 궁금한궁금이(121.129) 11.08.22 95 0
265690 정부주도 OS 개발 프로젝 예상 시나리오 [5] 분당살람갤로그로 이동합니다. 11.08.22 171 0
265688 세계 최고 갑부들은 개발자 출신이 많은거 알고도 개발자 까냐? [5] 쿄스케갤로그로 이동합니다. 11.08.22 179 0
265687 천재해커님아 여기 있음 [6] monoless갤로그로 이동합니다. 11.08.22 95 0
265686 저 징징은 내가 아니란다. [1] 호르홀(219.251) 11.08.22 50 0
265685 혹시 Visual studio 2010 으로 MFC작업하는 횽아 있어요? [18] 중2(121.66) 11.08.22 317 0
265684 간만에 vs6 다뤄볼려니까 짜증나 죽겠꾼. [4] blackd갤로그로 이동합니다. 11.08.22 91 0
265680 아 피곤해 [2] monoless갤로그로 이동합니다. 11.08.22 47 0
265679 저장 프로시저 어떻게 만드는거야? [17] 천재해커(175.196) 11.08.22 125 0
265678 프로그래머가 뭔지도 모르는 지구에서.JPG [1] 명경기갤로그로 이동합니다. 11.08.22 159 0
265677 꼬꼬면 사와서 끓이는중 [3] 쿄스케갤로그로 이동합니다. 11.08.22 83 0
265676 대부분 멍청한 애들이 프로그래머, 디자이너 하더라. [4] 징징(175.119) 11.08.22 159 0
265673 안철수가 총리나 경제관련 장관으로 등극해야 이나라IT가 산다. [3] 징징(219.251) 11.08.22 132 0
265671 질문)전문대에 입학하여 프로그래밍을 배울려고하는 고3입니다. [3] Nnagman(117.55) 11.08.22 157 0
265670 횽들 c언어 초급자인대 [5] 2434(14.39) 11.08.22 99 0
265668 형들근데 H/W도 개같이 일한다던데 프로그래머처럼 [2] zxc(119.69) 11.08.22 121 0
265667 4명이 일할걸 두명한테 시키니 밤을 새는 야근을 하는거다. [2] 징징(219.251) 11.08.22 106 0
265666 프로그래밍갤러리 형들 이뉴스어케 생각하세요? [1] zxc(119.69) 11.08.22 158 0
265665 진짜 창립멤버로 일할거 아니면 연봉,근무조건 따지는건 당연한거 아냐? [2] 징징(219.251) 11.08.22 97 0
265664 밑에 경력별 연봉 올린거 내가 부탁한거니까 나한데 욕해라 [7] 좋은아버지갤로그로 이동합니다. 11.08.22 140 0
265663 프갤에 왜 도메인 신청했다는 글이 안올라오지?? [1] 카페엠갤로그로 이동합니다. 11.08.22 51 0
265661 가축같이 일하는 ㅄ들이 몇명보인다.. [6] 징징(219.251) 11.08.22 104 0
265660 정부가 IT 4대강을 판다고? ㅋㅋㅋ [1] 징징(219.251) 11.08.22 132 0
265659 나 이런 경우 이력서에 경력을 워케 써야되냐? [1] 허허벌판갤로그로 이동합니다. 11.08.22 62 0
265657 공대 개그 (Nerds gag) - Boolean [3] 디미준(112.219) 11.08.22 128 0
265656 이직해서.. 연봉이야기 할때 퇴직금은 별도야 포함이야? [16] 허허벌판갤로그로 이동합니다. 11.08.22 224 0
265655 비베에서 스캐너 관련 api를 검색하고 싶은데.. [6] blackd갤로그로 이동합니다. 11.08.22 91 0
265654 스마트폰의 보급화 [1] 로하로하알로하갤로그로 이동합니다. 11.08.22 45 0
265653 먹여주고 재워주는 회사 가면 좋을거같다 [2] ㅇㅇ(61.77) 11.08.22 98 0
265652 프로그래밍갤에 연봉물어보지마라 [2] 가격거품갤로그로 이동합니다. 11.08.22 195 0
265651 전 어도비에 입사하고 싶습니다! [1] y녀6디리(218.146) 11.08.22 183 0
265650 우분투 11.04 기반의 다이나 2.5가 나왔다 이것드라 [3] 분당살람갤로그로 이동합니다. 11.08.22 86 0
265648 형들 게시판 만들떄 이것중에 어떤게 효율적일까 [3] 꿀레(115.95) 11.08.22 73 0
265647 횽아들~ 연봉 말고 경력별 연봉 차이 질문이라구! [12] 생물학(125.248) 11.08.22 238 0
265646 아까만든 더블클릭하면 페이지 스크롤 최상단 최하단 왔다갔다하는거 laoshanlong갤로그로 이동합니다. 11.08.22 53 0
뉴스 스트레이 키즈 리노, 구찌 글로벌 앰버서더 발탁 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2