begin process at 2012 05 30 10:29:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

DirectX

 > 

Utilisation de DirectInput pour un joystick


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Utilisation de DirectInput pour un joystick

dimanche 6 avril 2008 à 14:57:37 | Utilisation de DirectInput pour un joystick

nono1928

Bonjour à tous, voilà ça fait plusieurs heures que je bloque sur un pb, j'imagine que la réponse est simple mais comme je suis débutant...
J'essaie de faire fonctionner un programme minimaliste qui m'affiche (simplement avec un printf) la positon de mon joystick. Je voudrais utiliser DirectInput. J'ai trouvé plusieurs exemples de codes qui font ça, mais j'arrive à en compiler aucun (je suis sous Dev-C++). En fait j'ai une erreur de linkage car les programmes utilisent tous un #include <dinput.h> et moi dans les librairies du SDK que je viens de télécharger, j'ai bien un dinput.h mais pas de dinput.lib, seulement un dinput8.lib. Mais du coup je n'ai pas de dinput8.h. Bref, comment je m'en sors ??

Merci !

dimanche 6 avril 2008 à 16:17:53 | Re : Utilisation de DirectInput pour un joystick

juju12

et mettre dinput.h avec dinput8.lib, ca marche pas?
dimanche 6 avril 2008 à 16:39:15 | Re : Utilisation de DirectInput pour un joystick

nono1928

Comment je fais comprendre à Dev C++ que dinput8.lib est lié à dinput.h ?

dimanche 6 avril 2008 à 17:51:52 | Re : Utilisation de DirectInput pour un joystick

juju12

Il comprendra tout seul, suffit de lui dire d'utiliser dinput.h (via #include) et dinput8.lib (ajoutée aux références).
dimanche 6 avril 2008 à 18:53:14 | Re : Utilisation de DirectInput pour un joystick

nono1928

Non ça ne marche pas, peut-etre que je cherche du mauvais coté. Les erreurs qu'il me fait c'est
  .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
  [Linker error] undefined reference to `IID_IDirectInput8A'
  [Linker error] undefined reference to `DirectInput8Create@20'
(..)
  [Linker error] undefined reference to `GUID_XAxis'
(...)




mardi 8 avril 2008 à 03:02:57 | Re : Utilisation de DirectInput pour un joystick

f_l_a_s_h_b_a_c_k


entre ceci au debut du code
#include <ddraw.h>       
#pragma comment(lib, "ddraw.LIB")

et apres

#define DIRECTINPUT_VERSION  0x0700
//0x0700 ou sa 0x0800 ou 9 etc depand de quel version de dinput que tu utilise!
avec 0x0700 sa devrais faire l affaire!

#include <dinput.h>
#pragma comment(lib, "dinput8.LIB")
#pragma comment(lib, "dinput.lib")

suit cette ordre et sa devrais se compiler!!!
mardi 8 avril 2008 à 20:16:08 | Re : Utilisation de DirectInput pour un joystick

nono1928

Malheureusement ça ne fonctionne tjs pas.

Avec la version 7, j'ai ces erreurs:

Compilateur: Default compiler
Building Makefile: "C:\joystick\prog\01 dimanche\joystick-1.0\Makefile.win"
Exécution de  make...
make.exe -f "C:\joystick\prog\01 dimanche\joystick-1.0\Makefile.win" all
g++.exe -c main3.cpp -o main3.o -I"C:/joystick/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/joystick/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/joystick/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/joystick/Dev-Cpp/include/c++/3.4.2"  -I"C:/joystick/Dev-Cpp/include"  -I"C:/joystick/Microsoft DirectX SDK (March 2008)/Lib/x86"  

In file included from main3.cpp:17:
joystick.h:19: error: `LPDIRECTINPUT8' does not name a type
joystick.h:20: error: `LPDIRECTINPUTDEVICE8' does not name a type

In file included from main3.cpp:18:
joystick.cpp: In constructor `Joystick::Joystick(unsigned int)':
joystick.cpp:17: error: `di' undeclared (first use this function)
joystick.cpp:17: error: (Each undeclared identifier is reported only once for each function it appears in.)
joystick.cpp:18: error: `joystick' undeclared (first use this function)

joystick.cpp: In member function `long int Joystick::deviceName(char*)':
joystick.cpp:35: error: `di' undeclared (first use this function)
joystick.cpp:35: error: `joystick' undeclared (first use this function)

joystick.cpp: In member function `long int Joystick::open()':
joystick.cpp:54: error: `IID_IDirectInput8' undeclared (first use this function)
joystick.cpp:54: error: `di' undeclared (first use this function)
joystick.cpp:54: error: `DirectInput8Create' undeclared (first use this function)
joystick.cpp:62: error: `DI8DEVCLASS_GAMECTRL' undeclared (first use this function)
joystick.cpp:68: error: `joystick' undeclared (first use this function)
joystick.cpp: In member function `long int Joystick::close()':
joystick.cpp:93: error: `joystick' undeclared (first use this function)
joystick.cpp:98: error: `di' undeclared (first use this function)
joystick.cpp: In member function `long int Joystick::poll(DIJOYSTATE2*)':
joystick.cpp:108: error: `joystick' undeclared (first use this function)

joystick.cpp: In member function `BOOL Joystick::enumCallback(const DIDEVICEINSTANCE*, void*)':
joystick.cpp:153: error: `di' undeclared (first use this function)
joystick.cpp:153: error: `joystick' undeclared (first use this function)

joystick.cpp: In static member function `static unsigned int Joystick::deviceCount()':
joystick.cpp:179: error: `LPDIRECTINPUT8' undeclared (first use this function)
joystick.cpp:179: error: expected `;' before "di"
joystick.cpp:182: error: `IID_IDirectInput8' undeclared (first use this function)
joystick.cpp:182: error: `di' undeclared (first use this function)
joystick.cpp:182: error: `DirectInput8Create' undeclared (first use this function)
joystick.cpp:186: error: `DI8DEVCLASS_GAMECTRL' undeclared (first use this function)

make.exe: *** [main3.o] Error 1

Exécution terminée

-----------------------------------------------------------------------------
Avec la version 8 ou 9, j'ai ces erreurs:
Compilateur: Default compiler
Building Makefile: "C:\joystick\prog\01 dimanche\joystick-1.0\Makefile.win"
Exécution de  make...
make.exe -f "C:\joystick\prog\01 dimanche\joystick-1.0\Makefile.win" all
g++.exe -c main3.cpp -o main3.o -I"C:/joystick/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/joystick/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/joystick/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/joystick/Dev-Cpp/include/c++/3.4.2"  -I"C:/joystick/Dev-Cpp/include"  -I"C:/joystick/Microsoft DirectX SDK (March 2008)/Lib/x86"  

g++.exe main3.o  -o "joystick2.exe" -L"C:/joystick/Dev-Cpp/lib" 

main3.o(.text+0x167):main3.cpp: undefined reference to `IID_IDirectInput8A'
main3.o(.text+0x177):main3.cpp: undefined reference to `DirectInput8Create@20'
main3.o(.text+0x201):main3.cpp: undefined reference to `c_dfDIJoystick2'

main3.o(.text+0x4d6):main3.cpp: undefined reference to `IID_IDirectInput8A'
main3.o(.text+0x4e6):main3.cpp: undefined reference to `DirectInput8Create@20'
collect2: ld returned 1 exit status

make.exe: *** [joystick2.exe] Error 1

Exécution terminée
---------------------------------------------------------
Je ne comprends pas...
Merci d'avance !
mardi 8 avril 2008 à 22:20:34 | Re : Utilisation de DirectInput pour un joystick

f_l_a_s_h_b_a_c_k

#define WIN32_LEAN_AND_MEAN //oubli pas Ca!!!

utilise ddraw.lib 8 pour LPDIRECTINPUT8'
#define DIRECTINPUT_VERSION  0x0800
#include <ddraw.h>       
#pragma comment(lib, "ddraw.LIB")

ou  prend la bonne .lib
#include <C:\DX90SDK\\include\\ddraw.h>
#pragma comment(lib, "C:\DX90SDK\\Lib\\x86\\ddraw.LIB")


//IID_IDirectInput8A  / c est la 8 que tu utilisede dinput

#include <dinput.h>
#pragma comment(lib, "dinput8.LIB")
#pragma comment(lib, "dinput.lib") //<---- a mettre aussi





mercredi 9 avril 2008 à 00:15:28 | Re : Utilisation de DirectInput pour un joystick

nono1928

Non ça ne compile pas. Par contre, un truc que je comprends pas: j'ai une classe joystick et une classe test presque vide. La classe Joystick.cpp se compile normalement, si elle est toute seule. Dans la classe test, si j'appelle juste joystick.h ça compile, c'est normal. Par contre si je rajoute joystick.cpp, ou si je link avec joystick.a, là j'obtiens exactement les mêmes erreurs que précédement !! Pourtant je fais juste un #include "joystick.cpp". Une explication?


Cette discussion est classée dans : utilisation, lib, directinput, joystick, dinput


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec LPDIRECTINPUT8 [ par gdarkblue ] J'utilise Visual c++J'inclus les librairies dinput.libdinput8.libuuid.libdxguid.libJ'inclus le fichier "dinput.h"et "windows.h"et lorsque je met unLPD Unresolved sur utilisation DLL [ par raton ] Salut à tous.J'ai un petit problème d'utilisation de DLL.J'ai mon projet principale en C++ MFC. J'ai developpe une mini DLL.J'ai bien ajoute ma dll da Utilisation d'une lib .so en cpp [ par lounkokobi270987 ] BonsoirJ'aimerais savoir comment on fait pour utiliser les methode d'unobjet dans une lib .so en cpp je sais qu'il faut utiliser dlopen pour ouvrir la plusieurs joystick directinput [ par silkgandalf ] bon alors voila mon probleme:je veut pouvoir utiliser 2 joysticks.en avoir 1 j'y arrive, mais pour en avoir 2 je ne sait pas comment faire.2 LPDIRECTI utilisation fichier lib [ par cashroc ] salut a tousje voudrai utiliser un fichier liblibtiff.lib, que j'ai compile, c'est la bibliotheque de manipultion de tiff qque l'on trouve partout sur utilisation des tables dans c++ builder [ par cbil ] Cedric Me contacterJe ne comprend tres bien l'explication des table.Il n'y a pas afficher les syntaxes.Commen utiliser une fonction d'une lib C dans une classe c++ [ par snook ] Bonjour,j'aimerais savoir comment doit on proceder pourappeler une fonction d'une librairie ecrite en C dansmon programme C++?exemple: ma lib possede Lib FreeImage [ par cartouh ] Bonjour,voila j'utilise la librairie FreeImage pour traiter mes images mais lorsque je veux utiliser deux fonctions pour passer les images en noir et kernel32.lib [ par gertrude91 ] error C2447: missing function header (old-style formal list?)Quand je copile il me dit ça, et sur msdn, j'ai appris que pr mon prog je devé avr la lib utilisation du fichier md5.h [ par flatmax ] salut a tousje viens de recuperer les fichiers md5.h, md5.cpp, et j'aimerais savoir comment m'en servir pour obtenir le hash md5 d'un mot.quels foncti


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales