我无法摆脱这些简单的错误,但是如果有人可以回答这些错误中的杂草,那么它就会非常充实。我包括了windows.h和其他一些必要的标题但是无法摆脱它。
错误摘录:
error C2146: syntax error : missing ';' before identifier 'MMVERSION'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int error C4430: missing type specifier - int assumed. Note: C++ does not support default-int error C2143: syntax error : missing ';' before '*'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int error C2146: syntax error : missing ';' before identifier 'ms'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
提前致谢
答案 0 :(得分:5)
要扩展Anton的答案:windows.h #define
s UINT
为unsigned int
。这是一个C宏定义,而不是typedef
。如果您#include windows.h
之前#include mmsystem.h
他指向的行将被视为:
typedef unsigned int MMVERSION;
但是,如果以错误的方式执行此操作,那么UINT将扩展为空,并且该行将变为:
typedef MMVERSION;
这不是有效的C ++,你会得到一个解析错误。这正是你得到的。
答案 1 :(得分:3)
查看mmsystem.h
第112和113行:
#ifdef _WIN32
typedef UINT MMVERSION; /* major (high byte), minor (low byte) */
因此,请务必在windows.h
中添加mmsystem.h
,如果不起作用,请手动#define
_WIN32
{/ p}}。