BITMAP構造体について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mogo

BITMAP構造体について

#1

投稿記事 by mogo » 13年前

http://wisdom.sakura.ne.jp/system/winap ... in105.html
このサイトの2番目にあるサンプルを実行すると何も表示されません。1番目はきちんと表示されました。
コンパイル時のエラーもなくなぜなのか見当がつきません。教えてください。
Windows 8 64bit Visual Studio Express 2012

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: BITMAP構造体について

#2

投稿記事 by へにっくす » 13年前

デバッグのブレークポイントで、ちゃんとhBitmapが返ってきてるか確認してみてください。
おそらくNULLになっていると思います。
NULLになっているのを確認出来たら、こんどはGetLastError関数を使って、どういう値が返ってきてるか確認してみてください。

カギは、
bmWidthBytes は各行のバイト数ですが、これは直接設定する必要はありません
です。これが大ウソである可能性がありますw
(このホームページが作成された当時ではちゃんと動いていたと思われるので、一概に言えないのですが)
written by へにっくす

mogo

Re: BITMAP構造体について

#3

投稿記事 by mogo » 13年前

+ hBitmap 0x00000000 {unused=??? } HBITMAP__ *
と表示されました。GetLastError関数の使い方が調べてもわからなかったので、サンプルのどこにどう
追加すればいいのか教えてもらえますか。というかこれは環境のせいで表示されてないんですか?

mogo

Re: BITMAP構造体について

#4

投稿記事 by mogo » 13年前

カギは、
bmWidthBytes は各行のバイト数ですが、これは直接設定する必要はありません
です。

bmBitmap.bmWidthBytesでぐぐるとサンプルコードの修正が書かれているページがみつかりました。
これに = 6;を追加すると無事表示されました。ありがとうございます。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: BITMAP構造体について

#5

投稿記事 by へにっくす » 13年前

mogo さんが書きました:GetLastError関数の使い方が調べてもわからなかったので、サンプルのどこにどう
追加すればいいのか教えてもらえますか。
解決しちゃったようですが、エラーになるケースで値を取得するように組めばいいだけです。

コード:

hBitmap = CreateBitmapIndirect(&bmBitmap);
if ( !hBitmap )
{
	dwRet = GetLastError();
	// dwRet がエラーコード(DWORDで宣言)。WINERROR.Hで調べることができる。
}
written by へにっくす

閉鎖

“C言語何でも質問掲示板” へ戻る