ページ 11

winapi32でのJPEG画像表示切り替え 配列について

Posted: 2011年9月10日(土) 15:20
by aim
http://www.geocities.jp/ccfjd821/purogu/wpe-ji9.html 
↑のサイト様を参考にして、winapi32でJPEG画像を表示しようと思っています。
画像表示方法は、
char jpeg[3][10] = { "test1.jpg", "test2.jpg", "test1.jpg" } ;
(ポインタを使えばもっとうまく配列を扱えそう?)
と、いった感じで画像のファイル名を配列に格納して、その格納したファイル名を
GetHandle(ファイル名,hWnd,hdc); で読み込みたいと思っています。

ですが、GetHandle(jpeg[1][0],hWnd,hdc);
のようにしても、もちろん引数として認識しないのでできません。

いったいどうしたらうまくいくのでしょうか?
あまりうまく説明できなくて申し訳ないのですが、
なにか方法や参考サイト様などを知っている方がいましたら、どうか教えてください

Re: winapi32でのJPEG画像表示切り替え 配列について

Posted: 2011年9月10日(土) 16:10
by へろりくしょん
引数として認識しないというのが今ひとつさっぱり分かりませんが。

とりあえず、GetHandle() 関数は、void GetHandle(char File[255],HWND hWnd,HDC hdc) となってますね。
関数の仮引数で宣言された配列型は、ポインタ型に読み替えられます。
したがって、この場合の、第一引数 File の型は char* 型です。

で、char jpeg[3][10] = { "test1.jpg", "test2.jpg", "test1.jpg" } ;の
jpeg の型は char[3][10] です。
jpeg[0] の型は、char[10] です。
jpeg[0][0] の型は、char です。

ですので、この場合は、
GetHandle(&jpeg[1][0], hWnd, hdc); とするか、
GetHandle(jpeg[1], hWnd, hdc); とします。

Re: winapi32でのJPEG画像表示切り替え 配列について

Posted: 2011年9月11日(日) 11:50
by aim
へろりーなさん 返信ありがとうございます。
うまく動かすことができました!