CImageについて

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

CImageについて

#1

投稿記事 by ライティング » 13年前

VC++のMFCアプリケーションの画像読み込みについて質問です。
CImage img;
img.Load(画像ファイル);
であるファイルを読み込んで
int i;
i=img.GetWidth();
としたらビルドは上手くいんですが実行するとダイアログが出てきてエラーになります。
どうしたらいいでしょうか?画像ファイルの情報を取得したいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: CImageについて

#2

投稿記事 by softya(ソフト屋) » 13年前

問題のエラーを教えて下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ライティング

Re: CImageについて

#3

投稿記事 by ライティング » 13年前

今は環境が無いんでエラーを貼れませんが、構文的に間違ってないでしょうか?
ボタンがクリックされたとき処理する関数の中に
botan clicked()
{
int i;
img.Load(ファイル);
i=img.GetWidth();

}
です。
ボタンを押さなければエラーは出ませんが、ボタンを押したらエラーがでます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: CImageについて

#4

投稿記事 by softya(ソフト屋) » 13年前

まず間違いないく実行時の問題ですから、実行されないと出ないエラーだとは思います。
img.Load(画像ファイル);が失敗している可能性が高いので、HRESULT型の戻り値を確認してください。
「HRESULT 型の取り扱い方法 | いちばんやさしいゲームの作り方」
http://www.game-create.com/archives/395
「COM のエラー処理 (Windows)」
http://msdn.microsoft.com/ja-jp/library ... s.85).aspx
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ライティング

Re: CImageについて

#5

投稿記事 by ライティング » 13年前

エラーは
Debug Assertion Failed!です。赤い丸に白いバツのマークが出てきます。
以下エラー文章です。
Expression: m_hBitmap !=0
For information on how your programa~~~ C++ documentation on asserts.

どうすればいいでしょう?コードとして間違ってますか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: CImageについて

#6

投稿記事 by softya(ソフト屋) » 13年前

私の書いた通りです。戻り値で失敗の原因を探ってください。
softya(ソフト屋) さんが書きました:まず間違いないく実行時の問題ですから、実行されないと出ないエラーだとは思います。
img.Load(画像ファイル);が失敗している可能性が高いので、HRESULT型の戻り値を確認してください。
「HRESULT 型の取り扱い方法 | いちばんやさしいゲームの作り方」
http://www.game-create.com/archives/395
「COM のエラー処理 (Windows)」
http://msdn.microsoft.com/ja-jp/library ... s.85).aspx
ファイルなしのエラーだと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ライティング

Re: CImageについて

#7

投稿記事 by ライティング » 13年前

フォルダにちゃんと画像ファイルはありますね。
ちゃんとパスも入れてます。

ライティング

Re: CImageについて

#8

投稿記事 by ライティング » 13年前

ヘッダファイルでCImage img;と宣言しています。

int x;
img.Load(L"C:\\dog.bmp");
x=img.GetWidth;

何がいけないんだろう...

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: CImageについて

#9

投稿記事 by softya(ソフト屋) » 13年前

ライティング さんが書きました:フォルダにちゃんと画像ファイルはありますね。
ちゃんとパスも入れてます。
それを確認するためにエラー処理を入れてください。

ん? まてよ。
Expression: m_hBitmap !=0
For information on how your programa~~~ C++ documentation on asserts.
あぁ、分かりました2回クリックしたらエラーになりませんか?
2回目以降もロードしているからだと思います。

兎に角エラー処理は基本ですので入れるに越したことはありません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ライティング

Re: CImageについて

#10

投稿記事 by ライティング » 13年前

すいません....
そうかもしれません。一回だけクリックしたら何も出てきませんでした。
ということはロードした後解除すればいいんでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: CImageについて

#11

投稿記事 by softya(ソフト屋) » 13年前

ファイル名が固定で一回しか読まなくて良いのなら、ダイアログならOnInitDialogでLoadすれば良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ライティング

Re: CImageについて

#12

投稿記事 by ライティング » 13年前

ありがとうございます。

ライティング

Re: CImageについて

#13

投稿記事 by ライティング » 13年前

softyaさん、名前は変えないといけないでしょうか?
同じ人物が何個もトピック作成するのは迷惑ですか?
ライティング=レアコイルですが。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: CImageについて

#14

投稿記事 by みけCAT » 13年前

私はsoftyaさんではないですが、真逆です。
フォーラムルール上、名前は統一しないといけません。
オフトピック
ですよね
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

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