1

Direct Input 8 を使用するコードのコンパイルで問題が発生しました。コード内の他のすべてのコードは正常に動作しますが、入力コードがコンパイルされると、この一連の警告とエラーが表示されます。

    1>  Input.cpp
    1>c:\program files (x86)\windows kits\8.0\include\um\winuser.h(5826): warning C4091:     'typedef ' : ignored on left of 'tagINPUT' when no variable is declared
    1>c:\program files (x86)\windows kits\8.0\include\um\winuser.h(5826): error C2143: syntax error : missing ';' before ','
    1>c:\program files (x86)\windows kits\8.0\include\um\winuser.h(5826): error C2059: syntax error : ','
    1>c:\program files (x86)\windows kits\8.0\include\um\winuser.h(5833): error C2061: syntax error : identifier 'LPINPUT'

これは Visual Studio 2012 にあります。これを引き起こしている可能性のあるアイデアはありますか? コードの残りの部分でセミコロンとコンマが欠落していないかチェックしましたが、何も見つかりませんでした。以前に同様の問題を抱えた人はいますか?

winuser.h の周囲の行は次のとおりです。

#define INPUT_MOUSE     0
#define INPUT_KEYBOARD  1
#define INPUT_HARDWARE  2

typedef struct tagINPUT {
    DWORD   type;

    union
    {
        MOUSEINPUT      mi;
        KEYBDINPUT      ki;
        HARDWAREINPUT   hi;
    };
line 5826 } INPUT, *PINPUT, FAR* LPINPUT;

現在、Input.H に含まれているものは次のとおりです。

#include<dinput.h>
#include"MemUtils.h"

および Input.cpp には Input.H のみが含まれます

4

1 に答える 1

2

input.h ファイルでいくつかのマクロを使用しました。

#ifndef INPUT
#define INPUT

これは、この問題につながる重大で愚かな間違いでした。申し訳ありません。

于 2014-04-19T00:41:06.013 に答える