首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MinGW找不到XInput.h标头

MinGW找不到XInput.h标头
EN

Stack Overflow用户
提问于 2012-09-02 04:35:27
回答 1查看 2.6K关注 0票数 0

我正在尝试用MinGW通过一个.bat文件将这个main.cpp文件编译成DLL。我使用的是Windows,而不是Linux btw。

compile.bat mingw\bin\g++ "srcdll\main.cpp“-O3 -DNDEBUG -s -shared -o "D:\CPP\output\main.dll”

但是编译器一直说它找不到XInput.h。我还安装了include和DirectX目录,它们位于我的PATH环境变量中。

main.cpp

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-02 07:00:18

  1. 将标题路径添加到命令行
  2. 错误(未定义的引用)来自链接。您应该在链接行

中添加到.a/.o的路径

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12231176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档