我用MFC写了一个程序,想建一个文件("c:\\windows\\test.txt")。通过读写文件中的数据判断该程序运行了几次,以达到限期使用的目的。请问谁能帮帮我。

解决方案 »

  1.   

    看看这个http://blog.csdn.net/paobo/archive/2006/10/14/1334434.aspx
      

  2.   

    CFileStatus status;
    FILE *fp;
    CString mCishu;
    int nCount;
    char buf[512];
    if(!CFile::GetStatus("c:\\windows\\test.txt",status))
    {
    if((fp=fopen("c:\\windows\\test.txt","w"))==NULL)
    {
    AfxMessageBox("磁盘写保护,不能生成运行时所需文件。\n\n使用管理员身份运行本系统。");
    OnCancel();
    }
    mCishu="1";
    fp=fopen("c:\\windows\\test.txt","w");
    fwrite(mCishu,sizeof(char)*mCishu.GetLength(),2,fp);
    fclose(fp);
    }
      else
    {
    fp=fopen("c:\\windows\\test.txt","r");
    fread(buf,sizeof(char)*mCishu.GetLength(),2,fp);
    mCishu.Format("%s",buf);
    fclose(fp);
    nCount=atoi(mCishu);
    if(nCount<5)
    {
    nCount+=1;
    mCishu.Format("%s",nCount);
    fp=fopen("c:\\windows\\test.txt","w");
    fwrite(mCishu,sizeof(char)*mCishu.GetLength(),2,fp);
    fclose(fp);
    return;
    }
    else
    {
    AfxMessageBox("本软件超出试用次数。");
    OnCancel();
    }
    }
    这是我写的代码,但是得不到得不到我想要的值.给提点建议吧
      

  3.   

    CFileStatus status;
    FILE *fp;
    CString mCishu;
    int nCount;
    char buf[512];
    if(!CFile::GetStatus("c:\\windows\\test.txt",status))
    {
    }
      else
    {
    fp=fopen("c:\\windows\\test.txt","r");
    fread(buf,1,2,fp);
    mCishu.Format("%s",buf);
    fclose(fp);
    nCount=atoi(mCishu);
    if(nCount<5)
    {
    nCount+=1;
    mCishu.Format("%d",nCount);
    fp=fopen("c:\\windows\\test.txt","w");
    fwrite(mCishu,sizeof(char)*mCishu.GetLength(),2,fp);
    fclose(fp);
    return;
    }
    else
    {
    AfxMessageBox("本软件超出试用次数。");
    OnCancel();
    }
    }
    試試這個方法。
      

  4.   

    buf要初始化的,剛忘記寫了。