Sendmessageのパラメータ


台風さん  2004-10-09 00:33:33  No: 85929

SendMessage等APIに対してのパラメータに付いて色々調べていたのですが
サンプルプログラムによってパラメータの書き方が違います。
SendMessage(hWnd, WM_CLOSE, 0&, 0&)と書かれているサイトもあれば
SendMessage(hWnd, WM_CLOSE, 0, 0)と&が無いところもあります。
また、
SendMessage(hWnd, WM_CLOSE, &0, &0)と書かれていた所もありました。

この&は一体何を意味するのでしょうか?


raki  URL  2004-10-09 00:44:38  No: 85930

&は長整数型(Long)の型宣言文字です。
このほかにも
%:Integer
!:Sinble
#:Double
@:Currency
などがあります。


java.lang.Nullpo  2004-10-09 01:05:27  No: 85931

補足ですが、

> SendMessage(hWnd, WM_CLOSE, &0, &0)

ByVal 0& なら、私の好きな NULLポインタ の意味合いになります。


台風さん  2004-10-09 01:11:53  No: 85932

rakiさん、返答ありがとうございます。
こんな宣言方法があった事を初めて知りました。
&H10もそういった意味なのかな・・・?

0をLong型にする意味がよく分かりません。
また、この型宣言文字を、0の前に付けても後に付けても意味は同じなのでしょうか?


台風さん  2004-10-09 01:27:15  No: 85933

先ほどの発言を書いてる間に・・。
java.lang.Nullpoさん、返答ありがとうございます。

殆どのVBでのサンプルでは、API宣言でByVALと指定してありましたが
NULLポインタにする意味はあるのでしょうか?
質問ばかりで申し訳ないのですが、検索下手なのか
他に参考になるサイト等が見つからず、気になってしょうがありません。


ABC  2004-10-09 02:36:12  No: 85934

&H,&O(=&)はそれぞれ16進数、8進数表記の意味です。
検索する前にせっかくMSDNライブラリが附属しているのだから
そこの「コーディングの基礎」あたりを読んでみてはいかがでしょう。


みい  2004-10-09 04:33:43  No: 85935

> 殆どのVBでのサンプルでは、API宣言でByVALと指定してありましたが
> NULLポインタにする意味はあるのでしょうか?
APIのWM_CLOSEについて調べてみました?
WM_CLOSEメッセージの場合は後ろの2つの引数は使用されません。
普通に0を入れても良いのですが、NULLポインタにすることで「使用されない」
ことを明示しておくと、0を指定しているのか、使用しない引数なのかが
ソースコードを後で見返した時に分かりやすいですよ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加