CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

direct input

neg282
neg282
Niveau 7
11 novembre 2003 à 14:09:39

mon code :

DirectInput8Create(hInst,
DIRECTINPUT_VERSION,
IID_IDirectInput8,
( void**)& diObjet,
NULL);

et ca marche pas:

Compiling...
application.cpp
Skipping... ( no relevant changes detected)
programme.cpp
Linking...
application.obj : error LNK2001: unresolved external symbol _IID_IDirectInput8A
Debug/ProgDirect3D.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

ProgDirect3D.exe - 2 error(s), 0 warning(s)

Je comprend vraiment pas d´ou ca vient.

JeanYvesYves
JeanYvesYves
Niveau 10
11 novembre 2003 à 15:50:48

probleme de linkage.

Je n´utilise pas directInput, mais a l´époque, avec Direct Draw, fallait linker
ddraw.lib
dxguild.lib

et un autre, je ne sais plus lequel

a toi de toruver le bon a linker pour Dinput.

neg282
neg282
Niveau 7
11 novembre 2003 à 19:21:47

c´était " dxguid.lib", mais bon, maintenant ca marche ou presque, il detecte toujours que toutes les touches sont enfoncées :

  1. define KEYDOWN(Buf, key) ( Buf[key] & 0x80)

DirectInput8Create(hInst, DIRECTINPUT_VERSION, IID_IDirectInput8, ( void**)& diObjet, NULL);
diObjet->CreateDevice(GUID_SysKeyboard, &, NULL);
clavier->SetDataFormat(&_dfDIKeyboard);
clavier->SetCooperativeLevel(hWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE);
clavier->Acquire();

bool touche(unsigned char key)
{
char Buf[256];
clavier->GetDeviceState( sizeof(Buf),(LPVOID)Buf);
if(KEYDOWN(Buf, key))
return true;
return false;
}

le probleme, c´est que cette fonction retourne toujour TRUE.

JeanYvesYves
JeanYvesYves
Niveau 10
12 novembre 2003 à 02:11:09

Bon, DirectInput, je ne connais pas, mais au pire, avec Windows.h, c´est facile :
tu définis en globale un tableau

char keydown[256];

puis tu rajoutes, dans ta fonction callbacke de window, les lignes suivantes dans le switch que tu dois avoir :

case WM_KEYDOWN: if ( (wParam > = 0) && ( wParam < = 255)) {
keyDown [wParam] = TRUE;
return 0; }
break;
case WM_KEYUP: if ( (wParam > = 0) && ( wParam < = 255)) {
keyDown [wParam] = FALSE; return 0; }

avec cela, ton tableau keydown est TOUJOURS a jour.
tu le lis simplement avec :

if ( keydown[VK_F1])
// fait ce qu´il doit faire si tu appuies sur F1

tu trouveras aisément sur le net le code de toutes les touches, en cherchant VIRTUAL KEY

neg282
neg282
Niveau 7
12 novembre 2003 à 13:19:02

ouais, mais le probleme avec window c´est que tu utilise une syntaxe de ce type :

switch(key)
{
case UP:
case DOWN:
default:
. ..........
}

Et avec ca tu ne peut pas detecter plusieurs touches en meme temps ( haut & gauche par exemple).

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment