MFC中的文件操作,难!!! 我用MFC写了一个程序,想建一个文件("c:\\windows\\test.txt")。通过读写文件中的数据判断该程序运行了几次,以达到限期使用的目的。请问谁能帮帮我。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看这个http://blog.csdn.net/paobo/archive/2006/10/14/1334434.aspx 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(); } }这是我写的代码,但是得不到得不到我想要的值.给提点建议吧 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(); } }試試這個方法。 buf要初始化的,剛忘記寫了。 痛并快乐着,终于骗了个星星 RingSDK帮助文档发布! 右键复制文件夹到U盘 如何开发自己的界面库 一个简单的ActiveX的Stock问题: AllocConsole()后DOS窗口关闭我的程序也关了? 如何调用WScript运行js,vbs文件,并用js返回值到应用程序 如何生成像VC的资源编辑器那样的含有各个控件菜单? 20个红绿灯按条件分别控制显示?????(在线等1小时) 怎么根据*.idl文件产生c++文件! 文件打开对话框的钩子函数问题 用MoveWindow时候出现的奇怪的问题
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();
}
}
这是我写的代码,但是得不到得不到我想要的值.给提点建议吧
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();
}
}
試試這個方法。