DX11 DirectInput8Создать ошибку LNK2019

Я пытаюсь создать систему частиц с графическим интерфейсом, и она использует этот класс ввода для обработки ввода с клавиатуры или мыши.

Проблема заключается в линии;

HRESULT result = DirectInput8Create(.....);

вызывает LNK2019: Неразрешенная ошибка внешнего символа. Я включил необходимые файлы, поэтому я не уверен, почему это происходит. Ниже Input.h а также Input.cpp файлы соответственно.

INPUT.H файл

#ifndef _INPUT_
#define _INPUT_

#include <stdafx.h>
#include <dinput.h>

class Input{
private:
IDirectInputDevice8*    _DIKeyboard;
IDirectInputDevice8*    _DIMouse;

LPDIRECTINPUT8          _directInput;

LONG                    _mouseXabsolute, _mouseYabsolute, _mouseZabsolute;
LONG                    _mouseXrelative, _mouseYrelative, _mouseZrelative;
BYTE                    _keyboardState[256];
BYTE                    _leftMouseButton, _rightMouseButton;

int                     _screenWidth, _screenHeight;
HWND                    _hWnd;

POINT                   _point;
RECT                    _rect;

public:
Input();
~Input();

void unload();
bool initializeInput(HINSTANCE hInstance, HWND hWnd, int screenWidth, int screenHeight);

void updateInput();

BYTE* getKeyboardState();

LONG getMouseXRelative();
LONG getMouseYRelative();
LONG getMouseZRelative();

LONG getMouseXAbsolute();
LONG getMouseYAbsolute();
LONG getMouseZAbsolute();

BYTE getLeftMouseClick();
BYTE getRightMouseClick();
};

#endif

INPUT.CPP файл

#include <stdafx.h>
#include <Input.h>
#define DIRECTINPUT_VERSION 0x0800
#include <dinput.h>

using namespace std;

Input::Input() : _DIKeyboard(), _DIMouse(), _directInput(), _point(), _rect(){
_mouseXabsolute = _mouseYabsolute = 0;
_mouseZabsolute = 1;
_mouseXrelative = _mouseXrelative = _mouseXrelative = 0;
}

Input::~Input(){
unload();
}

void Input::unload(){
if (_DIKeyboard) _DIKeyboard->Release();
if (_DIMouse) _DIMouse->Release();
if (_directInput) _directInput->Release();
}

bool Input::initializeInput(HINSTANCE hInstance, HWND hWnd, int screenWidth, int screenHeight){

_screenWidth = screenWidth;
_screenHeight = screenHeight;
_hWnd = hWnd;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////Create direct input, keyboard and mouse devices///////////////////////////////////////////////////

HRESULT result = DirectInput8Create(hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&_directInput, NULL);

if (FAILED(result)){
MessageBox(0, L"Could not create direct input!", L"Error", MB_OK);
return false;
}
...
...
...
}

Буду признателен за любую помощь, чтобы решить эту проблему.

0

Решение

Вам следует обратиться к статической библиотеке dinput8.lib:

#pragma comment(lib, "dinput8")

Кроме того, вы должны рассмотреть возможность использования API ввода Raw вместо DirectInput: https://msdn.microsoft.com/en-us/library/windows/desktop/ms645536(v=vs.85).aspx

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector