어디다 넣어야 하는지 몰라서 대충.. 투척
일단 winmm.lib를 링크 해야 하고
winmm.dll을 해도 된다는데 dll은 쓸줄 모르니 패스 -ㅁ-
windows.h와 MMSystem.h를 포함하면된다.
사용한 함수들은 아래 예제 참고.
요즘 조이스틱은 4축 지원(X/Y/Z/R)를 많이 지원하므로
joyGetPos보다는 joyGetPosEx를 사용하는 것이 좋을듯 하다.
버튼은 1번 부터 1bit씩 LBS에서 MBS로 하나씩 올라간다(버튼이 12개 있으면 2^12 = 2048까지 올라가게 된다.
드라이버의 이름(제품명)은 Unicode로 저장되어 있으니 필요하면 %S로 출력하면 된다.
#include "stdafx.h"
#include "windows.h"
#include "MMSystem.h"
int _tmain(int argc, _TCHAR* argv[])
{
JOYINFO joyinfo;
JOYINFOEX joyinfo2;
JOYCAPS pjc;
UINT wNumDevs, wDeviceID;
BOOL bDev1Attached, bDev2Attached;
if((wNumDevs = joyGetNumDevs()) == 0)
{
return MMSYSERR_NODRIVER;
}
joyGetDevCaps(JOYSTICKID1, &pjc, sizeof(JOYCAPS));
printf("%d %d %S\n%d %d %d %d %d %d\n%d %d %d\n%d %d %d %d %d %d\n%d %d %d %d\n%S %S\n",
pjc.wMid,
pjc.wPid,
pjc.szPname,
pjc.wXmin,
pjc.wXmax,
pjc.wYmin,
pjc.wYmax,
pjc.wZmin,
pjc.wZmax,
pjc.wNumButtons,
pjc.wPeriodMin,
pjc.wPeriodMax,
pjc.wRmin,
pjc.wRmax,
pjc.wUmin,
pjc.wUmax,
pjc.wVmin,
pjc.wVmax,
pjc.wCaps,
pjc.wMaxAxes,
pjc.wNumAxes,
pjc.wMaxButtons,
pjc.szRegKey,
pjc.szOEMVxD);
printf("%d\n",wNumDevs);
#if 1
for(;;)
{
bDev1Attached = joyGetPosEx(JOYSTICKID1,&joyinfo2) != JOYERR_UNPLUGGED;
printf("X:%05d Y:%05d Z:%05d R:%05d H:%d %d\n",
joyinfo2.dwXpos, // X
joyinfo2.dwYpos, // Y
joyinfo2.dwZpos, // Z(throttle)
joyinfo2.dwRpos, // R(Rudder)
joyinfo2.dwPOV, // POV(Hat)
joyinfo2.dwButtons);
Sleep(100);
}
#else
for(;;)
{
bDev1Attached = joyGetPos(JOYSTICKID1,&joyinfo) != JOYERR_UNPLUGGED;
printf("%d %d %d %d\n",
joyinfo.wXpos,
joyinfo.wYpos,
joyinfo.wZpos,
joyinfo.wButtons);
Sleep(100);
}
#endif
system("pause");
return 0;
}
[링크 :
http://msdn.microsoft.com/en-us/library/ms709377.aspx]
[링크 :
http://msdn.microsoft.com/en-us/library/ms709352.aspx] joyGetPos
[링크 :
http://msdn.microsoft.com/en-us/library/ms709359.aspx] JOYINFO
[링크 :
http://msdn.microsoft.com/en-us/library/ms709354.aspx] joyGetPosEx
[링크 :
http://msdn.microsoft.com/en-us/library/ms709358.aspx] JOYINFOEX
[링크 :
http://msdn.microsoft.com/en-us/library/ms709350.aspx] joyGetDevCaps
[링크 :
http://msdn.microsoft.com/en-us/library/ms709348.aspx] JOYCAPS