2013-01-23 256 views
0

我试图建立在VS2008的一个项目,但我发现了以下错误:VS2008Compile错误在io.h文件

Error 1 error C2143: syntax error : missing ';' before '[' 
    C:\Program Files\Microsoft Visual Studio 9.0\VC\include\io.h 185 lmlib 
. 
. 
. 
Error 7 error C2143: syntax error : missing ';' before 'type' 
    C:\Program Files\Microsoft Visual Studio 9.0\VC\include\io.h 192 lmlib 

该项目工作正常VS2005,但为什么它不工作VS2008? 林附加io.h文件,请帮助我如何解决这些错误

#if _MSC_VER > 1000 
    #pragma once 
    #endif 

    #ifndef _INC_IO 
    #define _INC_IO 

    #include <crtdefs.h> 

    #ifdef _MSC_VER 
    /* 
    * Currently, all MS C compilers for Win32 platforms default to 8 byte 
    * alignment. 
    */ 
    #pragma pack(push,_CRT_PACKING) 
    #endif /* _MSC_VER */ 

    #ifndef _POSIX_ 

    #ifdef __cplusplus 
    extern "C" { 
    #endif 

    #ifndef _FSIZE_T_DEFINED 
    typedef unsigned long _fsize_t; /* Could be 64 bits for Win32 */ 
    #define _FSIZE_T_DEFINED 
    #endif 

    #ifndef _FINDDATA_T_DEFINED 

    struct _finddata32_t { 
     unsigned attrib; 
     __time32_t time_create; /* -1 for FAT file systems */ 
     __time32_t time_access; /* -1 for FAT file systems */ 
     __time32_t time_write; 
     _fsize_t size; 
     char  name[260]; 
    }; 

    struct _finddata32i64_t { 
     unsigned attrib; 
     __time32_t time_create; /* -1 for FAT file systems */ 
     __time32_t time_access; /* -1 for FAT file systems */ 
     __time32_t time_write; 
     __int64  size; 
     char  name[260]; 
    }; 

    struct _finddata64i32_t { 
     unsigned attrib; 
     __time64_t time_create; /* -1 for FAT file systems */ 
     __time64_t time_access; /* -1 for FAT file systems */ 
     __time64_t time_write; 
     _fsize_t size; 
     char  name[260]; 
    }; 

    struct __finddata64_t { 
     unsigned attrib; 
     __time64_t time_create; /* -1 for FAT file systems */ 
     __time64_t time_access; /* -1 for FAT file systems */ 
     __time64_t time_write; 
     __int64  size; 
     char  name[260]; 
    }; 

    #ifdef _USE_32BIT_TIME_T 
    #define _finddata_t  _finddata32_t 
    #define _finddatai64_t _finddata32i64_t 

    #define _findfirst  _findfirst32 
    #define _findnext  _findnext32 
    #define _findfirsti64 _findfirst32i64 
    #define _findnexti64  _findnext32i64 

    #else 
    #define _finddata_t  _finddata64i32_t 
    #define _finddatai64_t __finddata64_t 

    #define _findfirst  _findfirst64i32 
    #define _findnext  _findnext64i32 
    #define _findfirsti64 _findfirst64 
    #define _findnexti64 _findnext64 

    #endif 


    #define _FINDDATA_T_DEFINED 
    #endif 

    #ifndef _WFINDDATA_T_DEFINED 

    struct _wfinddata32_t { 
     unsigned attrib; 
     __time32_t time_create; /* -1 for FAT file systems */ 
     __time32_t time_access; /* -1 for FAT file systems */ 
     __time32_t time_write; 
     _fsize_t size; 
     wchar_t  name[260]; 
    }; 

    struct _wfinddata32i64_t { 
     unsigned attrib; 
     __time32_t time_create; /* -1 for FAT file systems */ 
     __time32_t time_access; /* -1 for FAT file systems */ 
     __time32_t time_write; 
     __int64  size; 
     wchar_t  name[260]; 
    }; 

    struct _wfinddata64i32_t { 
     unsigned attrib; 
     __time64_t time_create; /* -1 for FAT file systems */ 
     __time64_t time_access; /* -1 for FAT file systems */ 
     __time64_t time_write; 
     _fsize_t size; 
     wchar_t  name[260]; 
    }; 

    struct _wfinddata64_t { 
     unsigned attrib; 
     __time64_t time_create; /* -1 for FAT file systems */ 
     __time64_t time_access; /* -1 for FAT file systems */ 
     __time64_t time_write; 
     __int64  size; 
     wchar_t  name[260]; 
    }; 

    #ifdef _USE_32BIT_TIME_T 
    #define _wfinddata_t _wfinddata32_t 
    #define _wfinddatai64_t _wfinddata32i64_t 

    #define _wfindfirst  _wfindfirst32 
    #define _wfindnext  _wfindnext32 
    #define _wfindfirsti64 _wfindfirst32i64 
    #define _wfindnexti64 _wfindnext32i64 

    #else     
    #define _wfinddata_t _wfinddata64i32_t 
    #define _wfinddatai64_t _wfinddata64_t 

    #define _wfindfirst  _wfindfirst64i32 
    #define _wfindnext  _wfindnext64i32 
    #define _wfindfirsti64 _wfindfirst64 
    #define _wfindnexti64 _wfindnext64 

    #endif 

    #define _WFINDDATA_T_DEFINED 
    #endif 

    /* File attribute constants for _findfirst() */ 

    #define _A_NORMAL  0x00 /* Normal file - No read/write restrictions */ 
    #define _A_RDONLY  0x01 /* Read only file */ 
    #define _A_HIDDEN  0x02 /* Hidden file */ 
    #define _A_SYSTEM  0x04 /* System file */ 
    #define _A_SUBDIR  0x10 /* Subdirectory */ 
    #define _A_ARCH   0x20 /* Archive file */ 

    /* function prototypes */ 

    #ifndef _SIZE_T_DEFINED 
    #ifdef _WIN64 
    typedef unsigned __int64 size_t; 
    #else 
    typedef _W64 unsigned int size_t; 
    #endif 
    #define _SIZE_T_DEFINED 
    #endif 
    //from this line onwards i got errors// 
    _Check_return_ _CRTIMP int __cdecl _access(_In_z_ const char * _Filename, _In_ int  _AccessMode); 
    _Check_return_wat_ _CRTIMP errno_t __cdecl _access_s(_In_z_ const char * _Filename,  _In_ int _AccessMode); 
    _Check_return_ _CRTIMP int __cdecl _chmod(_In_z_ const char * _Filename, _In_ int _Mode); 
    /* note that the newly added _chsize_s takes a 64 bit value */ 
    _Check_return_ _CRTIMP int __cdecl _chsize(_In_ int _FileHandle, _In_ long _Size); 
    _Check_return_wat_ _CRTIMP errno_t __cdecl _chsize_s(_In_ int _FileHandle,_In_ __int64 _Size); 
    _Check_return_opt_ _CRTIMP int __cdecl _close(_In_ int _FileHandle); 
    _Check_return_opt_ _CRTIMP int __cdecl _commit(_In_ int _FileHandle); 
    _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _creat(_In_z_ const char * _Filename, _In_ int _PermissionMode); 
    _Check_return_ _CRTIMP int __cdecl _dup(_In_ int _FileHandle); 
    _Check_return_ _CRTIMP int __cdecl _dup2(_In_ int _FileHandleSrc, _In_ int _FileHandleDst); 
    _Check_return_ _CRTIMP int __cdecl _eof(_In_ int _FileHandle); 
    _Check_return_ _CRTIMP long __cdecl _filelength(_In_ int _FileHandle); 
    _Check_return_ _CRTIMP intptr_t __cdecl _findfirst32(_In_z_ const char * _Filename, _Out_ struct _finddata32_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _findnext32(_In_ intptr_t _FindHandle, _Out_ struct _finddata32_t * _FindData); 
    _Check_return_opt_ _CRTIMP int __cdecl _findclose(_In_ intptr_t _FindHandle); 
    _Check_return_ _CRTIMP int __cdecl _isatty(_In_ int _FileHandle); 
    _CRTIMP int __cdecl _locking(_In_ int _FileHandle, _In_ int _LockMode, _In_ long _NumOfBytes); 
    _Check_return_opt_ _CRTIMP long __cdecl _lseek(_In_ int _FileHandle, _In_ long _Offset, _In_ int _Origin); 
    _Check_return_wat_ _CRTIMP errno_t __cdecl _mktemp_s(_Inout_z_cap_(_Size) char * _TemplateName, _In_ size_t _Size); 
    __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _mktemp_s, _Deref_prepost_z_ char, _TemplateName) 
    _Check_return_ __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(char *, __RETURN_POLICY_DST, _CRTIMP, _mktemp, _Inout_z_, char, _TemplateName) 
    _Check_return_ _CRTIMP int __cdecl _pipe(_Inout_cap_c_(2) int * _PtHandles, _In_ unsigned int _PipeSize, _In_ int _TextMode); 
    _Check_return_ _CRTIMP int __cdecl _read(_In_ int _FileHandle, _Out_bytecap_(_MaxCharCount) void * _DstBuf, _In_ unsigned int _MaxCharCount); 

    #ifndef _CRT_DIRECTORY_DEFINED 
    #define _CRT_DIRECTORY_DEFINED 
    _Check_return_ _CRTIMP int __cdecl remove(_In_z_ const char * _Filename); 
    _Check_return_ _CRTIMP int __cdecl rename(_In_z_ const char * _OldFilename, _In_z_ const char * _NewFilename); 
    _Check_return_ _CRTIMP int __cdecl _unlink(_In_z_ const char * _Filename); 
    #if !__STDC__ 
    _Check_return_ _CRT_NONSTDC_DEPRECATE(_unlink) _CRTIMP int __cdecl unlink(_In_z_ const char * _Filename); 
    #endif 
    #endif 

    _Check_return_ _CRTIMP int __cdecl _setmode(_In_ int _FileHandle, _In_ int _Mode); 
    _Check_return_ _CRTIMP long __cdecl _tell(_In_ int _FileHandle); 
    _CRT_INSECURE_DEPRECATE(_umask_s) _CRTIMP int __cdecl _umask(_In_ int _Mode); 
    _Check_return_wat_ _CRTIMP errno_t __cdecl _umask_s(_In_ int _NewMode, _Out_ int * _OldMode); 
    _CRTIMP int __cdecl _write(_In_ int _FileHandle, _In_bytecount_(_MaxCharCount) const  void * _Buf, _In_ unsigned int _MaxCharCount); 

    _Check_return_ _CRTIMP __int64 __cdecl _filelengthi64(_In_ int _FileHandle); 
    _Check_return_ _CRTIMP intptr_t __cdecl _findfirst32i64(_In_z_ const char * _Filename,  _Out_ struct _finddata32i64_t * _FindData); 
    _Check_return_ _CRTIMP intptr_t __cdecl _findfirst64i32(_In_z_ const char * _Filename, _Out_ struct _finddata64i32_t * _FindData); 
    _Check_return_ _CRTIMP intptr_t __cdecl _findfirst64(_In_z_ const char * _Filename, _Out_ struct __finddata64_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _findnext32i64(_In_ intptr_t _FindHandle, _Out_ struct _finddata32i64_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _findnext64i32(_In_ intptr_t _FindHandle, _Out_ struct _finddata64i32_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _findnext64(_In_ intptr_t _FindHandle, _Out_ struct __finddata64_t * _FindData); 
    _Check_return_opt_ _CRTIMP __int64 __cdecl _lseeki64(_In_ int _FileHandle, _In_ __int64 _Offset, _In_ int _Origin); 
    _Check_return_ _CRTIMP __int64 __cdecl _telli64(_In_ int _FileHandle); 

    _Check_return_wat_ _CRTIMP errno_t __cdecl _sopen_s(_Out_ int * _FileHandle, _In_z_ const char * _Filename,_In_ int _OpenFlag, _In_ int _ShareFlag, _In_ int _PermissionMode); 

    #if !defined(__cplusplus) 
    _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _open(_In_z_ const char * _Filename, _In_ int _OpenFlag, ...); 
    _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _sopen(_In_z_ const char * _Filename, _In_ int _OpenFlag, int _ShareFlag, ...); 
    #else 

    /* these function do not validate pmode; use _sopen_s */ 
    extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _open(_In_z_ const char * _Filename, _In_ int _Openflag, _In_ int _PermissionMode = 0); 
    extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _sopen(_In_z_ const char * _Filename, _In_ int _Openflag, _In_ int _ShareFlag, _In_ int _PermissionMode = 0); 

    #endif 

    #ifndef _WIO_DEFINED 

    /* wide function prototypes, also declared in wchar.h */ 

    _Check_return_ _CRTIMP int __cdecl _waccess(_In_z_ const wchar_t * _Filename, _In_ int _AccessMode); 
    _Check_return_wat_ _CRTIMP errno_t __cdecl _waccess_s(_In_z_ const wchar_t * _Filename, _In_ int _AccessMode); 
    _Check_return_ _CRTIMP int __cdecl _wchmod(_In_z_ const wchar_t * _Filename, _In_ int _Mode); 
    _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wcreat(_In_z_ const wchar_t * _Filename, _In_ int _PermissionMode); 
    _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst32(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata32_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _wfindnext32(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata32_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _wunlink(_In_z_ const wchar_t * _Filename); 
    _Check_return_ _CRTIMP int __cdecl _wrename(_In_z_ const wchar_t * _OldFilename, _In_z_ const wchar_t * _NewFilename); 
    _CRTIMP errno_t __cdecl _wmktemp_s(_Inout_z_cap_(_SizeInWords) wchar_t * _TemplateName, _In_ size_t _SizeInWords); 
    __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wmktemp_s, _Deref_prepost_z_ wchar_t, _TemplateName) 
    __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wmktemp, _Inout_z_, wchar_t, _TemplateName) 

    _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst32i64(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata32i64_t * _FindData); 
    _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst64i32(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata64i32_t * _FindData); 
    _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst64(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata64_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _wfindnext32i64(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata32i64_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _wfindnext64i32(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata64i32_t * _FindData); 
    _Check_return_ _CRTIMP int __cdecl _wfindnext64(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata64_t * _FindData); 

    _Check_return_wat_ _CRTIMP errno_t __cdecl _wsopen_s(_Out_ int * _FileHandle, _In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _ShareFlag, _In_ int _PermissionFlag); 

    #if !defined(__cplusplus) || !defined(_M_IX86) 

    _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, ...); 
    _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wsopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, int _ShareFlag, ...); 

    #else 

    /* these function do not validate pmode; use _sopen_s */ 
    extern "C++" _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _PermissionMode = 0); 
    extern "C++" _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wsopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _ShareFlag, int _PermissionMode = 0); 

    #endif 

    #define _WIO_DEFINED 
    #endif 

    int __cdecl __lock_fhandle(_In_ int _Filehandle); 
    void __cdecl _unlock_fhandle(_In_ int _Filehandle); 
+0

看起来像在你的代码中的语法错误可能是你正在使用一些宏需要一个;或者你有一个失踪者;在你的课程结束时 –

+0

有任何**代码**去解决这个问题? – WhozCraig

+0

嗨Neel Basu谢谢你的回复,我检查了io.h文件中的每个类,每个类都包含;。 – user1448763

回答

1

很难说没有一些代码,也许你错过了类声明的一个标题结束后分号工作那么当io.h被包含时,它就会抱怨它。在黑暗中刺伤我很抱歉。

+0

嗨感谢您的回复@ rfcoder89,我检查了io.h文件,每个类都以分号结尾,我附上了io.h文件,帮我解决了这些错误 – user1448763

-2

您可能需要下载以前称为平台SDK的较新的Windows SDK。

编辑:阐述移动到新的vc2008时有一些差异。当我从vc2005转移到vc2008时,我解决了一些更新后的sdk问题。我没有说标准头文件中有错误,只是旧版SDK和vc2008中的头文件之间存在不匹配。在没有看到更多代码的情况下,很难说,但你不能从OP所述的潜在解决方案中消除这种情况。

我还应该为OP添加更新到新SDK的功能,它仍然可以在vc2005中正常运行,如果你是在Visual Studio中,你可能需要运行“Windows SDK配置工具”来设置更新的SDK需要尝试这一点。

+0

-1。没有先看到使用它的代码,你不能责怪标准库。这个问题出现在标准库中的可能性非常小。 –

+0

迁移到vc2008时,我遇到过类似的问题。正如OP所述,他已经将vc2005移植到vc2008,这是一个可能的解决方案,值得一试,因为这可以节省数小时的非问题。我并不是说这不是一个代码问题,它值得尝试这种问题的每一个途径,特别是当这个错误指向头文件中的解析错误时。 – Crog

+0

替换标准库是一个大锤,除非有充分的理由认为它是罪魁祸首,否则不应该这样做。没有可以检查的代码,这绝对不是一个合适的建议。 –