メモリ使用量を減らす方法

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: メモリ使用量を減らす方法

by Sinryow » 2005年9月06日(火) 08:14

そのメモリの内容が不要になった時にそのメモリ領域を開放すればよいのではないでしょうか。

どのような関数で,どんな目的で使うのか見せていただけませんか?

by セロリ » 2005年9月02日(金) 21:49

関数内で開放してないのがありますね・・・
でも戻り値にしてるのでfreeできない・・・・
いい案はありませんかね

by イグトランス » 2005年9月02日(金) 07:43

ならNew/mallocで確保しているメモリはDelete/freeで開放していますか?

> hBmp = CreateCompatibleBitmap(hWndDC, 640, 400)
> hADC = CreateCompatibleDC(hWndDC)
ところでこれはhWndDCでなくともhDCでできませんか。

開放・・・

by セロリ » 2005年9月02日(金) 02:22

DCはちゃんと開放してるみたいです・・・ほかの要因はないのでしょうか?

訂正…

by Sunshine » 2005年9月02日(金) 01:57

コード: 全て選択

ReleaseDC(hWndDC) → ReleaseDC(hMainWnd, hWndDC)
 でした。すみません。つд`)

by Sunshine » 2005年9月02日(金) 01:55

 作ったデバイスコンテキスト等は解放してますか?
 ローカルで作成されたデバイスコンテキストやビットマップなどは、そのローカル内で解放させなければなりません。
 グローバルで作成したデバイスコンテキスト等はプログラム終了時(RADツールで作ったプログラムならMainWnd_Destroy内)で解放してやります。
 ちなみに、CreateCompatibleDCで作成されたデバイスコンテキストはDeleteDC、GetDCで取得したデバイスコンテキストはReleaseDCで解放してやります。
 また、ビットマップ、ブラシ、フォントなどのオブジェクトをデバイスコンテキストに適用した場合、先にデバイスコンテキストから解放してやらないと、オブジェクトを解放することが出来ませんので注意。

 例:

コード: 全て選択


Sub MainWnd_Paint(hDC As DWord)
	Dim hADC As HDC, hWndDC As HDC, hBmp As HBITMAP
	hWndDC = GetDC(hMainWnd)
	hBmp = CreateCompatibleBitmap(hWndDC, 640, 400)
	hADC = CreateCompatibleDC(hWndDC)
	SelectObject(hADC, hBmp)
	BitBlt(hDC, 0, 0, 640, 400, hADC, 0, 0, SRCCOPY)

	'解放
	DeleteDC(hADC)
	DeleteObject(hBmp)
	ReleaseDC(hWndDC)
End Sub

メモリ使用量を減らす方法

by セロリ » 2005年9月02日(金) 00:49

ゲームをつくってるんですが、メモリ使用量が増え続けて困っています。
メモリ使用量を減らす方法などありましたら教えてください。
よろしくお願いします。

ページトップ