mcrblog

vcpp-ml

2001年12月

31

[vcpp 00057032] Re: Re: <Summary>joyGetPosEx APIのdwButton変数の値

ホッシーさんの<003b01c191dc$4313d390$69dec63d@hossy>から
>ところで村尾DOSさんの書かれた
>> memset( &joyinfo, 0x00, sizeof( JOYINFOEX))
>って、joyinfo 変数の内容をすべて 0x0 にする
>ってことですよね。joyGetPosEx API で
>書き換えてくれるのに、必要あるんでしょうか?

 一般的に API で使われる構造体は OS のバージョンや諸々の事情によ
り拡張されることがごく当たり前のように起こります。

 で、今現在問題なくてもお使いの OS が変わったときや、コンパイラ
が変わったときに思わぬバグに悩まされる可能性があります。

 ですので、API で使うような構造体は(たとえその必要はなくても) 0 
クリアしておく方が無難です。
 (もっともそうならないために dwSize を設定するんですけど
ね)(^^;

 癖としては、「とりあえず 0 クリア」しておいて、必要なフラグや値
をセットする。としておいた方がいいと思いますよ。

-- 
電柱一家
mailto:v...@denchu.jp
http://denchu.jp/
31

[vcpp 00057031] Re: Re: <Summary>joyGetPosEx APIのdwButton変数の値

こんにちは、村尾DOSです。

> ところで村尾DOSさんの書かれた
> > memset( &joyinfo, 0x00, sizeof( JOYINFOEX))
> って、joyinfo 変数の内容をすべて 0x0 にする
> ってことですよね。joyGetPosEx API で
> 書き換えてくれるのに、必要あるんでしょうか?
分かりません。
ただ、自分の知識に確信がないときはよくやります。
___________________________________
   村尾DOS   Address ── Web Site http://www.muraodos.com/
             └─── E-Mail ───  b...@muraodos.com
31

[vcpp 00057030] Re: Re: <Summary>joyGetPosEx API の dwButton 変数の値

ホッシーです。すいません。
なんかボケていました。解決しました。

問題点
・joyGetPosEx APIで
 ジョイパッドの情報を取得すると
 右側のキーがDebugビルドでは問題なく
 取得できるのにReleaseビルドでは
 取得できない。

解決策
・JOYINFOEXの構造体の
 dwSize dwFlags を設定する

ちょっと言い訳させてください (T_T)
・Debugではちゃんと取得できたのでReleaseビルド時の
 最適化で消されたのかと思ってしまいました。
 JOYINFOEX構造体の設定値がいけないとは思いもしませんでした。
・帰省中でAirH"が圏外で、MSDNOnline が見れなかったので...
 今日、近くの市街地まで出向いてメール送信&MSDNOnlineを
 みたら、dwFlags dwSize を指定しなければならないと
 書いてありました。最新のMSDN買おうかなぁ

ところで村尾DOSさんの書かれた
> memset( &joyinfo, 0x00, sizeof( JOYINFOEX))
って、joyinfo 変数の内容をすべて 0x0 にする
ってことですよね。joyGetPosEx API で
書き換えてくれるのに、必要あるんでしょうか?

お騒がせしてすいませんでした。

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 送信者 : ホッシー
   Mail : h...@yahoo.co.jp
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
31

[vcpp 00057029] Re: XPでVC

戸田です
いつもおせわになっております。

> XPプリインストールのDELL のノートでVC++を実行しているのですが
> Debug,Releaseモードのどちらでも実行すると砂時計のままになります。
> マウスカーソルを動かせるだけで何も出来なくなります。
> 同じような投稿を見かけた記憶があるのですが、
> あれって解決したんでしょうか?
> 回避方法ご存知の方教えて下さい。

前に出ていた同じような投稿はデバッグがうまくいかない
というものだったとおもいます。
解決策は、IMEを最小化することです。

あと、これは昨日私が経験したことですが
ノートンアンチウィルスを入れてVCを立ち上げ
デバッグモードでアプリを立ち上げようとしたら
システムがハングアップしました。
アンチウィルスのauto-protectを解除したら動くようになりました。


お役に立てれば幸いです。

-- 
戸田昌吾
s...@yo.rim.or.jp
30

[vcpp 00057028] Re: デフォルトコンストラクタでコンパイルエラーが発生

久保田@自宅です。
亀レスですみません。

> >> 'hogeを返す関数hogehogeが宣言された'と解釈されます。
> >> # int func(); てのと同類ね。
> >納得です.
> >C言語系では,関数内で関数宣言が出来ないはずなので,関数宣言と解釈されな
> >いと思っていました.

> 宣言(declare)できますよ。定義(define)できないけど。
> # extern int getchar(); の 'extern'を省略した形
そうですね。
関数内で、関数の定義ができないだけで、宣言はOKですよね。
定義ができない -> 宣言は普通しない -> 宣言だけしたソースを見たことない ->
宣言もできない という風に頭に刷り込まれていました。
だって宣言もできなかったら、関数ポインタ宣言できなくなっちゃうし。

皆様ありがとうございました。


from home,
記事検索
Amazon.co.jp
  • ライブドアブログ