这是我的一段代码,我想把一个用cfile类把一个数组的内容写到文件里面去。
void CTestView::OnWrite() 
{
// TODO: Add your command handler code here
CFile file;
CFileException e;
int array[100];
int i; for(i = 0; i < 100; i++)
array[i] = i;
if(file.Open("c:\test.dat", CFile::typeText | CFile::modeWrite | CFile::modeCreate, &e))
{
for(i = 0; i < 100; i++)
file.Write(&array[i], 4);
}
file.Close();

}
这个函数,vc报错:
C:\Documents and Settings\chris\My Documents\test\test\testView.cpp(118) : error C2059: syntax error : 'constant'
C:\Documents and Settings\chris\My Documents\test\test\testView.cpp(120) : error C2039: 'file' : is not a member of 'CFile'
        f:\program files\microsoft visual studio\vc98\mfc\include\afx.h(1202) : see declaration of 'CFile' 但是vc却报了一个非常奇怪的错误,我是用mfc框架写的,怎么会出现这种错误呢?

解决方案 »

  1.   

    CFile::Write()的第一个参数是void指针,所以没必要用循环写入,直接把数组标识填进去就行了,而在你这个程序中,CFileException e;更是不需要,CFile::Open的重载里有不用CFileException的,归根结底,你的程序太复杂;试试看这个:CFile file;
    int array[100];
    for(int i = 0; i < 100; i++)
        array[i] = i;
    if(!(file.Open("c:\test.dat", CFile::typeText | CFile::modeWrite | CFile::modeCreate))) //遇到问题应抛出错误
    {
        AfxMessageBox(_T("打开文件错误"));
        return;//退
    }
    file.Write(array[i],400);
    file.close;
      

  2.   

    CFile::Write 第一个参数是指针 =.=!!!
    -----------------------
    lz的代码在vc9编译通过哇~
      

  3.   

    除了代码不规范之外,应该是没有什么大错误的。
    不过我发现大家没有注意到一个问题,就是文件名"c:\test.dat"写错了,应该是"c:\\test.dat",  呵呵
      

  4.   

    哥儿你会用vc.net导入cad字库文件(*.shx)吗?