早教吧作业答案频道 -->其他-->
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)里的路径直接改为文件名的话,那就测到相应的数据,但我想要实现用按钮来打开文件,
我在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()只能获取文件名,不包涵路径.
把GetFileName()改成GetPathName()
GetFileName()只能获取文件名,不包涵路径.
看了 VC里什么函数可代替OPEN...的网友还看了以下:
mv^2/√(1-(v/c)^2)是什么?我用λ=h/p算出电子的波长,进而算出电子的频率,用不知 2020-04-11 …
只存在一种类型作用力且可导电的单质晶体(选Na或C)这个为什么选Na这两种分别存在什么作用力? 2020-05-13 …
对于三个数a,b,c,用M{a,b,c}表示这三个数的平均数,用min{a,b,c}表示这三个数中 2020-05-16 …
因式分解a3(b-c)+b3(c-a)+c3(a-b)如果用待定系数法解,得a3(b-c)+b3( 2020-05-16 …
两个直角三角形一条直角边的长是a另一条是b斜边是c用这两个直角三角形可以拼什么怎样求他们的周长和面 2020-05-22 …
用字母表示因数与积之间的关系axb=c用这个式子来写! 2020-06-03 …
相对论公式中有一个是v=c*pc/E对吧,那个E是什么啊?mv^2/2还是mc^2还是根号下m^2 2020-06-08 …
光的折射中λ=c/v什么意思的v是什么意思书上用这个公式推出介质中波长λ1=v1/v=c/nv=λ 2020-06-12 …
(关于转账凭证)这道题为什么不选A呢?转账凭证传递的要求是(C)。A.先收款、后记账B.先记账,后 2020-06-18 …
一道三角函数题在三角形ABC中,角A,B,C的对边分别是a,b,c,且3bsinC-5csinBc 2020-06-27 …