Programming/C Win32 MFC2013. 6. 15. 19:06
어디다 넣어야 하는지 몰라서 대충.. 투척
일단 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
 

'Programming > C Win32 MFC' 카테고리의 다른 글

assert()  (0) 2013.12.18
printf의 %s와 %S  (0) 2013.06.15
Windows IME  (0) 2013.02.14
== 와 = 의 실수를 피하기 위한 트릭  (2) 2013.01.06
c 변수범위 헤더  (0) 2012.07.02
Posted by 구차니