2010-05-11 4 views
0

J'ai un programme qui ne semble pas reconnaître les types déclarés dans le dernier logiciel U3D. Il y a une ligneVisual C++ 2008 ne reconnaît pas les types déclarés Windows

typedef BOOL (WINAPI* GMI)(HMON, LPMONITORINFOEX); 

qui obtient l'erreur:

Erreur 1 erreur C2061: erreur de syntaxe: identificateur 'LPMONITORINFOEX' c: \ Projects \ U3D \ Source \ RTL \ Platform \ Common Files \ win32 \ IFXOSRender. cpp 28

et une ligne

MONITORINFOEX miMon; 

qui obtient

erreur 5 erreur C2065: 'miMon': identificateur non déclaré c: \ Projects \ U3D \ Source \ RTL \ Plate-forme \ Common \ Win32 \ IFXOSRender.cpp 49 Erreur 3 erreur C2065: 'MONITORINFOEX': identificateur non déclaré c: \ Projects \ U3D \ Source \ RTL \ Platform \ Common \ Win32 \ IFXOSRender.cpp 49

La première instruction sans commentaire du programme est #include <windows.h>, qui inclut winuser.h, qui définit ces identificateurs. Dans Visual Studio, je peux faire un clic droit sur eux et aller à la définition (un typedef) et de la typedef à la struct. WINAPI est défini dans WinDef.h, donc cela semble fonctionner. Il n'y a aucune redéfinition de LPMONITORINFOEX ou MONITORINFOEX dans tout autre fichier. Alors, comment cela peut-il se produire, et que puis-je faire à ce sujet?

Répondre

1

Ma conjecture est que quelque chose est en place avec votre définition WINVER. Si vous regardez winuser.h, ceux qui ne sont définis dans le bloc:

#if(WINVER >= 0x0500) 

Est-il possible que votre WINVER est mal réglé?

+0

Merci beaucoup - c'était 0400. J'ai changé, et les erreurs ont disparu. –

Questions connexes