FillMemory – プログラミング – Home

通知
すべてクリア

[解決済] FillMemory


tasuki
 tasuki
(@tasuki)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

FillMemory(pixel+i*128, 128, i);
第1引数は一行目のアドレス
for文で0~255を書き込んでますが
これはカラーテーブルを参照するということですか?
たんに、メモリ内容をiの値で埋め尽くすということですか?
教えてください。

LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {

static PBYTE DIB, pixel;
static PBITMAPINFO binfo;
LPRGBQUAD RGB;

HDC hdc;
PAINTSTRUCT ps;
int i;

switch(msg) {

case WM_CREATE:
DIB=(PBYTE)HeapAlloc(
GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(BITMAPINFO)+255*sizeof(RGBQUAD)+128*256
);

binfo=(PBITMAPINFO)DIB;
pixel=DIB+sizeof(BITMAPINFO)+255*sizeof(RGBQUAD);
RGB=(LPRGBQUAD)(binfo->bmiColors);

for(i=0;i<256;i++)
{
RGB[i].rgbRed =i;
RGB[i].rgbGreen =255-i;
RGB[i].rgbBlue =128-i/2;
}

binfo->bmiHeader.biSize =sizeof(BITMAPINFOHEADER);
binfo->bmiHeader.biWidth =128;
binfo->bmiHeader.biHeight =256;
binfo->bmiHeader.biPlanes =1;
binfo->bmiHeader.biBitCount =8;
binfo->bmiHeader.biCompression=BI_RGB;

for(i=0; i<256; i++){
FillMemory(pixel+i*128, 128, i);
}
return 0;

case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);

StretchDIBits(hdc,0,0,128,256,
0,0,128,256,pixel,binfo,
DIB_RGB_COLORS,SRCCOPY);

EndPaint(hwnd,&ps);
return 0;
}
return DefWindowProc(hwnd , msg , wp , lp);
}


引用未解決
トピックタグ
えちぜん
 えちぜん
(@えちぜん)
ゲスト
結合: 18年前
投稿: 15
 

FillMemoryを検索するとMSDNのページがでてきました。
このページを見ると開始アドレスから指定されたサイズまでiの値で書き込んでいるの
ではないでしょうか。

128×256のデータを作ってるのでは?

http://msdn.microsoft.com/library/ja/default.asp?
url=/library/ja/jpmemory/html/_win32_fillmemory.asp


返信引用
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

FillMemoryが以下のFillMemoryのことなら
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpmemory/html/_win32_fillmemory.asp
pixel+i*128から128バイトの範囲をiの値で埋め尽くすことになるね。

>これはカラーテーブルを参照するということですか?
この質問の『これ』がFillMemoryを指すならば
FillMemoryはメモリ内容を埋め尽くすためのものなので
ビットマップとかカラーテーブルとか関係ない。


返信引用
tasuki
 tasuki
(@tasuki)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

お答えありがとうございます。
いろいろ解らないことがありまして参考になりました。
どうもありがとうございます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました