どうも。ホッシーです。

C++の文法は多少は理解できますが、
英語はちょっと苦手なのでMSDNは
翻訳ソフトに頼ってます。

joyGetPosEx API を使って、
JoyPad のボタン入力を読み取りたいんですが、
(ファミコンとかでいう)十字キーの方の入力は
読み取れるんですが、右側の 1 2 3 4 ボタンの
読み取りは Debug ビルドでは問題なく読めるのに
Release ビルドでは読み取れませんでした。

DebugビルドでOKだと思ったのは、
以下のプログラムを実行してみると、
Debug のときは、ボタンを押すと、
1=>1 2=>2 3=>4 4=>8
が表示されたのに、Release では、
ずっと0が表示されるからです。

私の作ったテスト用プログラムの作り方
1.Win32 Console Application を選択
2.空のプロジェクト
3.ソースファイルを Main.cpp の名前で新規作成
4.以下のソースをコピー&ペースト

#include <afxwin.h>
#include <stdio.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")

void main()
{
 JOYINFOEX joyinfo;
 char aa[10];
 joyinfo.dwXpos=30000;
 while(joyinfo.dwXpos!=0)
 {
  joyGetPosEx(JOYSTICKID1, &joyinfo);
  printf(itoa(joyinfo.dwButtons, aa, 10));
 }
 return;
}

なお、十字キーを左にすると終了します。

-- 私の環境 --------------------------------
   機種   NEC PC-LC700J/64DH
   OS   Windows2000Pro
 ジョイパッド すいません。もらい物なので
        機種名&メーカー名は不明です
        USB接続です。
--------------------------------------------

なぜこうなるのか、なにか
心当たりのある方、よろしくお願いします。


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