#include "stdafx.h"
#include "ErrException.h"
...
//创建或打开文件
CFile file = ::CreateFile(
sz,
GENERIC_WRITE,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(file.IsInvalid())
{
this->ThrowErrorException(::GetLastError());
}
if(INVALID_SET_FILE_POINTER == ::SetFilePointer(file, 0L, NULL, FILE_END))
{
this->ThrowErrorException(::GetLastError());
}错误的是“INVALID_SET_FILE_POINTER: undclared identifier”。我准备在stdafx.h或者ErrException.h中定义它,但不知道该定义为什么数据类型?好像应该定义为public的吧?顺便问问:代码中的::是什么意思?

解决方案 »

  1.   

    老大,我觉得你应该看看msdn中是怎样使用CreateFile的,他返回的是HANDLE句柄
    不是什么file指针,INVALID_SET_FILE_POINTER错误就是这个了HANDLE hFile = CreateFile("MYFILE.TXT",           // create MYFILE.TXT 
                 GENERIC_WRITE,                // open for writing 
                 0,                            // do not share 
                 NULL,                         // no security 
                 CREATE_ALWAYS,                // overwrite existing 
                 FILE_ATTRIBUTE_NORMAL |       // normal file 
                 FILE_FLAG_OVERLAPPED,         // asynchronous I/O 
                 NULL);                        // no attr. template if (hFile == INVALID_HANDLE_VALUE) 

        ErrorHandler("Could not open file.");  // process error 
    } 这样才对吗!祝你好运