Um die Funktion in c++ ein zu binden muß du nur die richtigen header ein bin den unter MS C++ ist das ganz einfach lat dir ein fach das DiretX SDK bei ms runter da ist ein sehr einfacheres beispiel dabei.
so ähnlich halt ist ein aus zug aus meinem code per DirektXCode:..... #define DIRECTINPUT_VERSION 0x0800 #include <dinput.h> #include "resource.h" CMNJoystick* g_pMNJoy; ..... // Register with the DirectInput subsystem and get a pointer // to a IDirectInput interface we can use. // Create a DInput object if( SUCCEEDED( hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION,IID_IDirectInput8, (VOID**)&g_pDI, NULL ) ) ) { // Look for a simple joystick we can use for this sample program. if(SUCCEEDED( hr = g_pDI->EnumDevices( DI8DEVCLASS_GAMECTRL,EnumJoysticksCallback,NULL, DIEDFL_ATTACHEDONLY ) ) ) { // Make sure we got a joystick if( NULL == g_pJoystick ) { MessageBox( NULL, TEXT("Keinen JoyStick gefunden. Oder kann nicht Initalisieren"),TEXT("MN Joystickclass"),MB_ICONERROR | MB_OK ); return FALSE; } // Set the data format to "simple joystick" - a predefined data format // // A data format specifies which controls on a device we are interested in, // and how they should be reported. This tells DInput that we will be // passing a DIJOYSTATE2 structure to IDirectInputDevice::GetDeviceState(). if(SUCCEEDED( hr = g_pJoystick->SetDataFormat( &c_dfDIJoystick2 ) ) ) { // Set the cooperative level to let DInput know how this device should // interact with the system and with other DInput applications. //DISCL_EXCLUSIVE |DISCL_FOREGROUND if(SUCCEEDED( hr = g_pJoystick->SetCooperativeLevel( hDlg, DISCL_EXCLUSIVE|DISCL_BACKGROUND ) ) ) { // Enumerate the joystick objects. The callback function enabled user // interface elements for objects that are found, and sets the min/max // values property for discovered axes. if(SUCCEEDED( hr = g_pJoystick->EnumObjects( EnumObjectsCallback,(VOID*)hDlg, DIDFT_ALL ) ) ) { ATLTRACE("Nun kann es los gehen\n"); g_hClientThreadMsg = CreateEvent(NULL,TRUE,FALSE,NULL); g_hClientThreadExit = CreateEvent(NULL,TRUE,FALSE,NULL); m_hClientThreadHandle=(HANDLE)_beginthreadex(NULL,0,ClientThread,this,CREATE_SUSPENDED,reinterpret_cast<unsigned int*>(&m_dwClientThreadId)); SetThreadPriority(m_hClientThreadHandle, THREAD_PRIORITY_NORMAL); ResumeThread(m_hClientThreadHandle); if(WaitForSingleObject(g_hClientThreadMsg,30000) == WAIT_OBJECT_0) { ATLTRACE("Thread läuft mal sehen ob daten kommen\n"); } } } else { m_pRoboclient->TraceIt("SetCooperativeLevel not OK"); } } ...







Zitieren

Lesezeichen