1

직접 입력 8을 사용하는 일부 코드를 컴파일하는 데 문제가 있습니다. 내 코드의 다른 모든 것은 잘 작동하지만 입력 코드가 컴파일되면 경고 및 오류 시퀀스가 ​​나타납니다.Typedef 경고 및 구문 오류 LPINPUT

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입니다.이 문제의 원인은 무엇입니까? 세미콜론과 쉼표가 없기 때문에 나머지 코드를 검사했지만 아무 것도 찾을 수 없었습니다. 이전에 비슷한 문제가 있었나요?

여기

#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에 포함 winuser.h에서 주변 라인입니다

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

하고 Input.cpp 단지 내가 사용했다 Input.H

+2

줄 5826의 내용과 winuser.h의 주변 줄이이 질문과 관련이있을 것이라고 생각하면 맞을 것입니다. – WhozCraig

+1

input.cpp의 포함을 표시 할 수 있습니까? –

+0

모두 제안 사항을 추가했습니다. –

답변

1

을 포함 내 input.h 파일의 일부 매크로.

#ifndef INPUT 
#define INPUT 

이것은이 문제로 이어지는 비판적이고 어리석은 실수였습니다. 이 모든 것에 대해 유감입니다.