이 main.cpp 파일을 .bat 파일을 통해 MinGW가있는 DLL로 컴파일하려고합니다. Windows가 아닌 Linux btw입니다. ": \ CPP의 \ 출력 \의 main.dll D"MinGW에서 XInput.h 헤더를 찾을 수 없습니다.
하지만 컴파일러가 계속 g는 ++ "srcdll이 MAIN.CPP는 \"-O3 -DNDEBUG -s -shared -o는 \
compile.bat 와 Mingw \ bin에 그것은 XInput.h를 찾을 수 없다는 것을 말합니다. DirectX SDK도 설치되어 있으며 include 및 lib 디렉토리는 PATH 환경 변수에 있습니다.
MAIN.CPP commande 라인
#include <windows.h>
#include <XInput.h>
#define EXPORTREAL extern "C" __declspec(dllexport) double __cdecl
#define EXPORTSTRING extern "C" __declspec(dllexport) LPSTR __cdecl
EXPORTREAL setRumble(double index, double left, double right)
{
XINPUT_VIBRATION vibration;
vibration.wLeftMotorSpeed = left;
vibration.wRightMotorSpeed = right;
XInputSetState(index,&vibration);
return index;
}
EXPORTREAL leftTrigger(double index)
{
XINPUT_STATE state;
XInputGetState(index,&state);
return state.Gamepad.bLeftTrigger;
}
EXPORTREAL rightTrigger(double index)
{
XINPUT_STATE state;
XInputGetState(index,&state);
return state.Gamepad.bRightTrigger;
}
EXPORTREAL leftThumbX(double index)
{
XINPUT_STATE state;
XInputGetState(index,&state);
return state.Gamepad.sThumbLX;
}
EXPORTREAL leftThumbY(double index)
{
XINPUT_STATE state;
XInputGetState(index,&state);
return state.Gamepad.sThumbLY;
}
EXPORTREAL rightThumbX(double index)
{
XINPUT_STATE state;
XInputGetState(index,&state);
return state.Gamepad.sThumbRX;
}
EXPORTREAL rightThumbY(double index)
{
XINPUT_STATE state;
XInputGetState(index,&state);
return state.Gamepad.sThumbRY;
}
EXPORTREAL getButtonState(double index)
{
XINPUT_STATE state;
XInputGetState(index,&state);
return state.Gamepad.wButtons;
}
EXPORTREAL checkButton(double index, double button)
{
WORD buttonWord;
XINPUT_STATE state;
buttonWord = button;
XInputGetState(index,&state);
return (state.Gamepad.wButtons & buttonWord) ? 1 : 0;
}
EXPORTREAL getCtrlState(double index)
{
XINPUT_STATE state;
return XInputGetState(index,&state);
}
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
XINPUT_VIBRATION vibration;
vibration.wLeftMotorSpeed = 0;
vibration.wRightMotorSpeed = 0;
XInputSetState(0,&vibration);
return TRUE;
}
컴파일러의 명령 줄에 포함 경로를 추가 했습니까? 일부 검색 후 – kmdv
헤더 파일을 추가 했으므로 -I "D : \ SDKs \ DirectX \ Include"및 -I "D : \ SDKs \ DirectX \ Lib"과 함께 #define __inout MS stuff , 그것은 지금 파일을 찾은 것 같지만 "XInputSetState @ 8"에 대한 정의되지 않은 참조와 같은 오류가 발생합니다 ... – user780756
시스템 헤더를 포함 할 때'-isystem'을 선호합니다. 이렇게하면 어쨌든 수정하지 않을 코드에서 원하지 않는 경고가 제거됩니다. – kmdv