早教吧 育儿知识 作业答案 考试题库 百科 知识分享

VC里什么函数可代替OPEN函数我在VC里用了按钮控件来构建一个对话框,打开一个文件.在这个按键的函数里我又用了OPEN函数来打同一个文件,这样导致检测的数据不对,编译倒是没错.VC里有什么函

题目详情
VC里什么函数可代替OPEN函数
我在VC里用了按钮控件来构建一个对话框,打开一个文件.在这个按键的函数里我又用了OPEN函数来打同一个文件,这样导致检测的数据不对,编译倒是没错.VC里有什么函数可以替代这个OPEN函数,或如何修改以下代码.代码如下:void CZinceDlg::OnButopen()
{
// TODO:Add your control notification handler code here
CString strName;
//char *path;
int ret1;
//char ch4[100];
CDialog::OnInitDialog();
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle="我的文件打开对话框";
fileDlg.m_ofn.lpstrFilter="All Files(*.*)\0*.*\0\0";
//构造定制的文件对话框
//CFileDialog dlg(TRUE,_T("*"),_T("*.avi"),OFN_EXPLORER,_T("影像文件(*.avi)|*.avi|所有文件(*.*)|*.*|"));
//CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,"所有文件|*.*||");
if(fileDlg.DoModal()==IDOK)
{
strName1=fileDlg.GetPathName();
//MessageBox(strName1+"文件已打开","打开文件");
//m_epath1.Format("文件路径:%s",strName1);
CFile file(fileDlg.GetFileName(),CFile::modeRead);//定义文件
dwFileLen=file.GetLength();//读取文件长度
pBuf=new char[dwFileLen+1];
pBuf[dwFileLen]=0;
file.Seek(0,CFile::begin);
file.Read(pBuf,dwFileLen);//读取文件信息
m_epath1.Format("文件路径:%s",file.GetFilePath()); //显示文件的路径
ret1=mdec((char *)(LPCTSTR)strName1);
static int mdec(char *argv)
{
int ret,code;
base.Infile=open(argv,O_RDONLY|O_BINARY);
ld = &base;
if(base.Infile = 0)
{
Initialize_Buffer();
next_start_code();
//取32位数据
code = Show_Bits(32);
switch(code)
{
case SEQUENCE_HEADER_CODE://序列头
break;
case SEQUENCE_END_CODE://序列结束
return 0;
break;
case PACK_START_CODE:
System_Stream_Flag = 1;
case VIDEO_ELEMENTARY_STREAM://视频流
System_Stream_Flag = 1;
break;
default:
break;
}
Initialize_Buffer();
}
Initialize_Decoder();
ret = Decode_Bitstream();
close(base.Infile);
return 0;
}
如果把上面的ret1=mdec((char *)(LPCTSTR)strName1)里的路径直接改为文件名的话,那就测到相应的数据,但我想要实现用按钮来打开文件,
▼优质解答
答案和解析
CFile file(fileDlg.GetFileName(),CFile::modeRead);//定义文件
把GetFileName()改成GetPathName()
GetFileName()只能获取文件名,不包涵路径.