Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.03.2010, 16:44

Fehler beim erstellen des Direct Input Devices

hi,
irgendwie bekomm ich immer einen Fehler beim Initialisieren von DirectInput und ich verstehe nich was ich falsch mache:
DirectInput.cpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "Framework.h"

HRESULT Dinput::Init()
{
    HRESULT hResult;

    // IDirectInput8-Schnittstelle erstellen

    if(FAILED(hResult = DirectInput8Create(NULL,
                                           0x0800,
                                           IID_IDirectInput8,
                                           (void**)(&m_pDirectInput),
                                           NULL)))
    {
        MessageBox(NULL,"Fehler beim erstellen des DirectInput Devices","Fehler",MB_OK);
    }

    return 0;
}


DirectInput.h

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once
#include "Framework.h"
#include <d3d9.h>
#include <d3dx9.h>
#include <dinput.h>

class Dinput
{
private:
    LPDIRECTINPUT8      m_pDirectInput; // IDirectInput8-Schnittstelle

    HWND                m_hWindow;      // Verwendetes Fenster

    DWORD               m_dwCoopLevel;  // Kooperationsebene


public:

    // Methoden

    HRESULT Init(); // Initialisierung

    HRESULT Exit();                                                                                 // Herunterfahre

};


ich meine mein code macht doch nichts falsch oder?

mfg

Fabian
Metal ist keine Musik sondern eine Religion.

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

2

18.03.2010, 17:06

leicht falsch in grafikprogrammierung oder? ;)
evtl musst du den ersten parameter ausfüllen?

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

3

18.03.2010, 17:28

Der erste Parameter darf nicht NULL sein. Must die ProgrammInstanz übergeben. Diese erhälst du leicht über GetModuleHandle() (afaik)
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

4

18.03.2010, 17:57

ich habs jetzt so gemacht

C-/C++-Quelltext

1
GetModuleHandle("SternDerMacht.exe")

und es geht. :D
Danke.
Metal ist keine Musik sondern eine Religion.

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

5

18.03.2010, 18:14

kannst bei GetModuleHandle auch nichts angeben, dann liefert er die instanz des processes zurück, der diese funktion aufgerufen hat :)

6

18.03.2010, 18:31

ich hab jetzt ein neues Problem:
Wenn ich versuche eine Taste abzufragen kommt gar nicht:

C-/C++-Quelltext

1
2
3
4
5
6
7
bool                    m_bKeys[256];
bool Dinput::isKeyDown(unsigned int iKey)
{
    return m_bKeys[iKey];
}
//Aufruf in einer anderen Datei

if(di.isKeyDown(DIK_A))MessageBox(NULL,"h",",",MB_OK);
Metal ist keine Musik sondern eine Religion.

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

7

18.03.2010, 18:37

Mensch les doch bitte die Tutorials zu diesem Thema durch. Das sind alles Fragen die dort garantiert behandelt werden. Falls du nicht mal tuts suchen willst, schau einfach in die dx documentation. Dort steht auch alles drinnen (sogar in tut-form).
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Nexxtron

Alter Hase

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

8

18.03.2010, 21:20

http://www.two-kings.de/tutorials/dinput/
New Project: Operation CityRacer

Werbeanzeige