- Win32API質問箱 Build124
53 : ◆QZaw55cn4c [sage]:2017/12/01(金) 08:19:52.73 ID:ytACGBKw - >>51
ありがとうございます。 ・hFile はこの関数(WinMain) だけで使う変数で、ここで一気にビットマップを読み込むのに使っています。確かに CloseHandle(hFilt) とした方がいいですね。 ・int WIDTH = 0 はひどい、static int WIDTH にするべきでした。 ・WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount) + 31 / 32); これもひどいなあ…ご指摘されてはじめてまずさがわかりました。 ようはビットマップの一行の幅を 32ビット単位にする操作ですね。31をたして、全体を 32 で割って DWORD 数を出し、それに 4 をかけてバイト数を出す、 ご指摘のとおり WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount + 31)/ 32); にいたしました。 すると画面に縦じまが現れました。これは重大な進歩です、これを元にもう一度元ソースを見直します。 ありがとうございました。
|
- Win32API質問箱 Build124
54 : ◆QZaw55cn4c [sage]:2017/12/01(金) 08:51:13.54 ID:ytACGBKw - >>51
>>53 すみません、hFile はグローバル変数でした。ローカル変数定義を削除しました
|
- Win32API質問箱 Build124
55 : ◆QZaw55cn4c [sage]:2017/12/01(金) 08:57:42.07 ID:ytACGBKw - >>51>>53
ご指摘を受けたあたりを修正して、うまく表示できるようになりました。 コメントをいただき、ありがとうございました! https://ideone.com/W8wuOF >>52 SetFilePointer() は次回 WM_PAINT 時に備えたものだと考えています。
|
- 次世代言語Part7[Go Rust Swift Kotlin TypeScript]
995 :デフォルトの名無しさん[sage]:2017/12/01(金) 19:49:58.10 ID:ytACGBKw - scheme?
|