奇怪的CreateFile
我在编程时遇到了一个很奇怪的问题,如果你调用一次浏览器,你会CreateFile失败,哈哈,不相的话你可以试下,下面的是我的代码,其中Targetway()就是弹出浏览器的,你如果不调用浏览器,直接按Button1可以生成文件,但你按了浏览按钮后,再按Button1就不能生成了,唉。。。我也想知这是为什么啊。。
如果要源码可以到这里拿
www.126.com
帐号:CSDNtest1
密码:CSDNtest
#define NAMEBUF 1024//这个是全局的
CString F1path;//在.h中定义
CString F2path;//在.h中定义
void CMy2Dlg::OnButton1()
{
CString sz1="0;1;34;23;67;54;9;3";
char *sz = sz1.GetBuffer(sz1.GetLength());
DWORD dw;
HANDLE hFile=CreateFile("n.html",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
WriteFile(hFile,sz,strlen(sz)+1,&dw,NULL);
CloseHandle(hFile);
CString MeTelephone="",MePassword="";
GetDlgItem(IDC_MeTelephone)->GetWindowText(MeTelephone);
GetDlgItem(IDC_MePassword)->GetWindowText(MePassword);
SelectDlg dlg;
if(F1path=="" || F2path=="" || MeTelephone=="" || MePassword=="")
MessageBox("需要的信息还没填完整喔!");
else
{
if(IDOK==dlg.DoModal())
{
MessageBox("OK");
}
}
}
void CMy2Dlg::OnButton2()
{
Targetway(1);//弹出文件浏览器
//F1path="c:\\1.xls";
GetDlgItem(IDC_Test1)->SetWindowText(F1path);//使Text文件框显示出文件的地址
}
void CMy2Dlg::OnButton3()
{
Targetway(2);//弹出文件浏览器
//F2path="c:\\2.xls";
GetDlgItem(IDC_Test2)->SetWindowText(F2path);//使Text文件框显示出文件的地址
}
void CMy2Dlg::Targetway(int FileNumber)
{
::CFileDialog File(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
_T("Excel(*.xls)(*.csv)|*.xls;*.csv|"),GetParent());
File.m_ofn.lpstrFile = new TCHAR[NAMEBUF]; // 重新定义缓冲区大小
memset(File.m_ofn.lpstrFile,0,NAMEBUF); // 初始化定义的缓冲
File.m_ofn.nMaxFile = NAMEBUF; //重新定义文件地址的长度。
CString pathName;
if(File.DoModal() == IDOK)
{
POSITION pos = File.GetStartPosition();
while(pos != NULL)
{
pathName = File.GetNextPathName(pos);
}
}
else
{
MessageBox("取消了");
}
if(FileNumber==1)//判断文件是成绩xls还是飞信csv
F1path = File.GetPathName();//保存成绩xls地址
else
F2path = File.GetPathName();//保存飞信csv地址
delete [] File.m_ofn.lpstrFile;
}