Предупреждение Typedef и синтаксическая ошибка LPINPUT

У меня возникают проблемы при компиляции некоторого кода, который использует 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

1

Решение

Я использовал некоторые макросы в моем файле input.h.

#ifndef INPUT
#define INPUT

Это была критическая и глупая ошибка, которая привела к этой проблеме. Извините за все это.

2

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


По вопросам рекламы [email protected]