RE^5:プラグインいついて (みやさか) 1999/11/02 14:48

> ただ、ビットマップのデータに何を入れても変化が無く
> ピクチャーウインドウを開いた時のバック(?)を表示します(透明ではありません)
> これは、何が原因で起こるのでしょうか?

実際のコードを見ていないので、何とも言えません。Susie に渡す BMP ヘッダの
中の値がおかしな値になっていないか、とかをチェックして見てはどうでしょう?。


------------------------------------------------------

> LocalUnlock( lp );
> LocalUnlock( bitmap );

LocalUnlock() 関数のプロトタイプは、

> BOOL LocalUnlock(
> HLOCAL hMem // handle to the local memory object
> );

です。つまり、引数にはメモリの先頭アドレスではなく、
メモリオブジェクトへのハンドルを指定しなければなりません。


------------------------------------------------------

> *pHBm = LocalAlloc( LMEM_MOVEABLE , xsize * ysize * 3 );

BMP 形式では、イメージの各ラインのバイト数をそれぞれ DWORD境界
(4バイト境界)にあわせなければなりません。フルカラー形式ならば
必要なバイト数は、(((xsize*3)+3)&0xfffffffc) * ysize で
計算しなければなりません。


------------------------------------------------------

> また
> lpPrgressCallback
> を呼んでも例外処理で強制終了をさせられます。
> これは、何が原因で起こるのでしょうか?

lpPrgressCallback 変数の定義を確認してください。(*lpPrgressCallback)();
というような定義になっていませんか?。この変数は厳密に定義すると、

 int (CALLBACK *lpPrgressCallback)(int,int,long);

でなければなりません。ここで重要なのは CALLBACK です。これがないと
この関数がリターンした後に異常終了します。実際には、

 typedef int (CALLBACK *SPIPROGRESS)(int,int,long); /* SPIPROGRESS 型の定義 */

という一行を書いておくと、

 SPIPROGRESS lpPrgressCallback; /* 実際の変数の定義 */

というように、簡単に定義できて便利です。




--「RE^5:プラグインいついて」に対するコメント--
タイトル(Subject):
お名前(Your name):
Mail address:
Password: :入力しておくとあとで削除できます
Your message:




7thBridge P ver0.26 (c)Takechin