VS2010编译C++错误:warning C4244和error C2039,求教怎么办?

出错的那段代码:voidCFileCopyDlg::OnBnClickedCopy(){if(pathname.IsEmpty())return;if(fullname.... 出错的那段代码:
void CFileCopyDlg::OnBnClickedCopy()
{
if(pathname.IsEmpty())
return;
if(fullname.IsEmpty())
return;
readfile=new CFile(pathname,CFile::modeRead);
HANDLE hfile=::CreateFile(fullname,GENERIC_WRITE|GENERIC_WRITE,0,0,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0);
CloseHandle(hfile);
writefile=new CFile(fullname,CFile::modeWrite);
filelen=readfile->GetLength(); 213行
ldiv_t r;
r=ldiv(filelen,100);
long pos=r.quot;
long ipos;
ipos=pos;
int i=0;
hGlobal = GlobalAlloc(GMEM_MOVEABLE,512);
pvData = GlobalLock(hGlobal);
while(1){
ZeroMemory(pvData,512);
readlen=readfile->ReadHuge(pvData,512); 224行出错
poslen=readfile->GetPosition(); 225行出错
if(poslen>ipos)
{
ipos+=pos;
i++;
}
m_fileproc.SetPos(i);
m_fileproc.Invalidate();
writefile->WriteHuge(pvData,readlen); 233行出错
if(poslen==filelen)
break;
}
AfxMessageBox("复制完成");
m_fileproc.SetPos(0);
GlobalUnlock(hGlobal);
readfile->Close();
writefile->Close();
}
提示错误:

d:\新建文件夹\vs项目\filecopy\filecopy\filecopydlg.cpp(213): warning C4244: “=”: 从“ULONGLONG”转换到“long”,可能丢失数据
d:\新建文件夹\vs项目\filecopy\filecopy\filecopydlg.cpp(224): error C2039: “ReadHuge”: 不是“CFile”的成员
d:\vs2010\vc\atlmfc\include\afx.h(989) : 参见“CFile”的声明
d:\新建文件夹\vs项目\filecopy\filecopy\filecopydlg.cpp(225): warning C4244: “=”: 从“ULONGLONG”转换到“long”,可能丢失数据
d:\新建文件夹\vs项目\filecopy\filecopy\filecopydlg.cpp(233): error C2039: “WriteHuge”: 不是“CFile”的成员
d:\vs2010\vc\atlmfc\include\afx.h(989) : 参见“CFile”的声明
展开
 我来答
heptnaol
2014-10-14 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1852万
展开全部
ReadHuge换成Read

WriteHuge同样,换成Write

那警告就是说从long long转long会丢失数据,你定义filelen时用unsigned long long就不会有警告了。
joychen_
2014-10-14 · TA获得超过1747个赞
知道大有可为答主
回答量:1617
采纳率:100%
帮助的人:1843万
展开全部
VC++2005及后续VC版本中的CFile没有ReadHuge和WriteHuge成员函数,代码中的ReadHuge换成Read、WriteHuge换成Write即可。
警告:可以试着把长度定义为int64
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式