前段阵子帮人写了小程序,结果反应说程序在98环境下保存信息的时候会出错,据说连目录都创建不了
我这里也没有98系统,郁闷至极,第一次发帖,也是第一次给人写东西,希望大家帮忙看看,着急用,谢过了先,还有一个问题就是如何设置使一个对话框在800*600下初始显示为满屏。{
CFile _file;
CUser user;
CString str;
CString filename;
CTime time;
//得到当前系统时间,加入到文件名中
time=time.GetCurrentTime();
str=time.Format("%Y-%m-%d-%H-%M-%S");
filename = str+".txt"; CString _str = "";
FILE *fpOut;
char n_str[64]; //用于读取路径名
CString DataFileName="SavePath.ini"; //得到当前应用程序工作路径
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer(); int nPos;
nPos=sPath.ReverseFind ('\\');
sPath=sPath.Left(nPos+1); //打开保存路径文件得到文件需要保存的位置
DataFileName = sPath + DataFileName;
if((fpOut=fopen((LPSTR)(LPCTSTR)DataFileName,"r"))==NULL)
{
AfxMessageBox("文件错误!"+DataFileName);
return ;
}
else
{
fseek(fpOut,0L,SEEK_SET);
while(fscanf(fpOut,"%s",n_str)!=EOF)
{
_str=n_str;
}
fclose(fpOut);
}
//如果在文件中未指定保存路径,则设置默认值
if (strlen(_str)==0)
{
_str = "c:\\记录\\";
} //指定目录不存在时,创建文件夹
CString temp;
int i=_str.Find("\\");
temp=_str.Left(i+1);
temp+="\\";
for (int m=i+1;m<_str.GetLength();m++)
{
temp+=_str[m];
if(_str.GetAt(m)=='\\')
{
CreateDirectory(temp,NULL);
}
}
//向文件中写入数据
filename=_str+filename;
int _fileFlag;
_fileFlag=_file.Open (filename,CFile::modeWrite|CFile::modeCreate|CFile::typeBinary,NULL);
if(_fileFlag==0)
{
MessageBox("Save file failed!", MB_OK);
return;
}
else
{
//tempstr存储着要写入的信息
CString tempstr = "";
_file.Write(tempstr, strlen(tempstr));
}
_file.Close();
AfxMessageBox("记录已保存!");
}
我这里也没有98系统,郁闷至极,第一次发帖,也是第一次给人写东西,希望大家帮忙看看,着急用,谢过了先,还有一个问题就是如何设置使一个对话框在800*600下初始显示为满屏。{
CFile _file;
CUser user;
CString str;
CString filename;
CTime time;
//得到当前系统时间,加入到文件名中
time=time.GetCurrentTime();
str=time.Format("%Y-%m-%d-%H-%M-%S");
filename = str+".txt"; CString _str = "";
FILE *fpOut;
char n_str[64]; //用于读取路径名
CString DataFileName="SavePath.ini"; //得到当前应用程序工作路径
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer(); int nPos;
nPos=sPath.ReverseFind ('\\');
sPath=sPath.Left(nPos+1); //打开保存路径文件得到文件需要保存的位置
DataFileName = sPath + DataFileName;
if((fpOut=fopen((LPSTR)(LPCTSTR)DataFileName,"r"))==NULL)
{
AfxMessageBox("文件错误!"+DataFileName);
return ;
}
else
{
fseek(fpOut,0L,SEEK_SET);
while(fscanf(fpOut,"%s",n_str)!=EOF)
{
_str=n_str;
}
fclose(fpOut);
}
//如果在文件中未指定保存路径,则设置默认值
if (strlen(_str)==0)
{
_str = "c:\\记录\\";
} //指定目录不存在时,创建文件夹
CString temp;
int i=_str.Find("\\");
temp=_str.Left(i+1);
temp+="\\";
for (int m=i+1;m<_str.GetLength();m++)
{
temp+=_str[m];
if(_str.GetAt(m)=='\\')
{
CreateDirectory(temp,NULL);
}
}
//向文件中写入数据
filename=_str+filename;
int _fileFlag;
_fileFlag=_file.Open (filename,CFile::modeWrite|CFile::modeCreate|CFile::typeBinary,NULL);
if(_fileFlag==0)
{
MessageBox("Save file failed!", MB_OK);
return;
}
else
{
//tempstr存储着要写入的信息
CString tempstr = "";
_file.Write(tempstr, strlen(tempstr));
}
_file.Close();
AfxMessageBox("记录已保存!");
}
::PostMessage(this.m_hWnd,WM_SYSCOMMAND,SC_MAXIMIZE,0);
提示:error C2660: 'PostMessageA' : function does not take 4 parameters
::PostMessage(this->m_hWnd,WM_SYSCOMMAND,SC_MAXIMIZE,0);
谢谢你了,Snow_Ice,好像要结贴了?我看看怎么给分