不知道为什么 编译通过了 但是运行的时候却发生了错误:
error:Debug Asesertion Failed Failed!
f:\sp\vctors\vc7libsce\ship\atlmfc\src\mfc\filecore.cpp line 207 (207看不清楚不知道是297还是207)
相关的MFC函数:
void CFilterNumDlg::OnBnClickedFirst()
{
printf("\n++++++++++++++++++++++++++++++++\n");
// TODO: Add your control notification handler code here
if(fnum==NULL)
{
printf("\nFirst \n");
exit(1);
}
GetDlgItem(IDC_Preview)->EnableWindow(FALSE);
// printf("\nL1\n");
GetDlgItem(IDC_First)->EnableWindow(FALSE);
// printf("\nL2\n");
GetDlgItem(IDC_Next)->EnableWindow(TRUE);
// printf("\nL3\n");
GetDlgItem(IDC_End)->EnableWindow(TRUE);
// printf("\nL4\n");
m_editmobile.SetReadOnly(TRUE);
printf("\nL5\n");
// fnum.SeekToBegin();
fnum.Seek(0,CFile::begin); //这里出错了
printf("XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n");
printf("\nL6\n");
fnum.ReadString(m_mobile);
printf("\nL7\n");
// fseek(fnum,0,SEEK_SET);
// fscanf(fnum,"%s",mobNum);
// m_mobile=(CString)mobNum;
UpdateData(FALSE);
printf("**************************\n");
}
但是在ininDLG函数中不知道为什么 open 没有问题啊
open file 相关的函数:
BOOL CFilterNumDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
// fnum=fopen("Filternum.txt","wb");
printf("\nfile open here\n");
fnum.Open(L"FilterNum.txt",CFile::modeCreate||CFile::modeWrite);//modeRead
printf("file open ok\n");
if(fnum==NULL)
{
MessageBox(L"ODBC Connection Faile!",NULL,MB_OK);
CDialog::EndDialog(0);
GetParent()->PostMessage(WM_CLOSE);
}
return TRUE; // return TRUE unless you set the focus to a control
}
我把 FilterNum.txt 和.exe放在同一个文件夹下
但是如果我增加了判断
if(!(fnum.Open(L"FilterNum.txt",CFile::modeRead||CFile::modeWrite)));
{
printf("\nERROR\n");
}
这里竟然会打印出error
这是为什么啊?
难道Open() 的文件名 添加了 L标志就不对么? 还是我把txt文件放错了呢 谢谢
if 后面多写了一个分号
但是不知道为什么 既然 open都对了
fnum.Seek(0,CFile::begin); 却死了
我怎么就没看明白,你用的Open会返回真,我记得在Ce下,所有用到的文件都一定要是绝对路径的.