存图片用:
void CPicView::OnButton2()
{
static char BASED_CODE szFilter[] = "Bitmap Files (*.jpg)|*.jpg||";
CFileDialog fd(TRUE,NULL,NULL,0,szFilter,this);
if (IDOK != fd.DoModal())
return; try
{
m_pSet->AddNew();
CFile fileImage;
CFileStatus fileStatus;
fileImage.Open(fd.GetPathName(), CFile::modeRead);
fileImage.GetStatus(fileStatus);
m_pSet->m_id = "06";
(m_pSet->m_pic).m_dwDataLength = fileStatus.m_size;
HGLOBAL hGlobal= GlobalAlloc(GPTR,fileStatus.m_size);
(m_pSet->m_pic).m_hData = GlobalLock(hGlobal);
fileImage.ReadHuge((m_pSet->m_pic).m_hData,fileStatus.m_size);
m_pSet->SetFieldDirty(&(m_pSet->m_pic));
m_pSet->SetFieldNull(&(m_pSet->m_pic),FALSE);
m_pSet->Update();
GlobalUnlock(hGlobal);
m_pSet->Close();
}
catch(CException* pE)
{
pE->ReportError();
pE->Delete();
return;
}
}
取图片用:
void CPicView::OnButton1()
{
if (m_pSet->IsBOF()) { // detects empty recordset
return;
}
m_pSet->MoveFirst(); // fails if recordset is empty
while (m_pSet->m_id!="06") {
m_pSet->MoveNext();
}
CFile outFile("06.jpg",CFile::modeCreate|CFile::modeWrite);
LPSTR buffer = (LPSTR)GlobalLock((m_pSet->m_pic).m_hData);
outFile.WriteHuge(buffer,(m_pSet->m_pic).m_dwDataLength);
GlobalUnlock((m_pSet->m_pic).m_hData);
outFile.Close();
}
为什么图片小于64k没问题,大于64k就截断了?高手帮忙
void CPicView::OnButton2()
{
static char BASED_CODE szFilter[] = "Bitmap Files (*.jpg)|*.jpg||";
CFileDialog fd(TRUE,NULL,NULL,0,szFilter,this);
if (IDOK != fd.DoModal())
return; try
{
m_pSet->AddNew();
CFile fileImage;
CFileStatus fileStatus;
fileImage.Open(fd.GetPathName(), CFile::modeRead);
fileImage.GetStatus(fileStatus);
m_pSet->m_id = "06";
(m_pSet->m_pic).m_dwDataLength = fileStatus.m_size;
HGLOBAL hGlobal= GlobalAlloc(GPTR,fileStatus.m_size);
(m_pSet->m_pic).m_hData = GlobalLock(hGlobal);
fileImage.ReadHuge((m_pSet->m_pic).m_hData,fileStatus.m_size);
m_pSet->SetFieldDirty(&(m_pSet->m_pic));
m_pSet->SetFieldNull(&(m_pSet->m_pic),FALSE);
m_pSet->Update();
GlobalUnlock(hGlobal);
m_pSet->Close();
}
catch(CException* pE)
{
pE->ReportError();
pE->Delete();
return;
}
}
取图片用:
void CPicView::OnButton1()
{
if (m_pSet->IsBOF()) { // detects empty recordset
return;
}
m_pSet->MoveFirst(); // fails if recordset is empty
while (m_pSet->m_id!="06") {
m_pSet->MoveNext();
}
CFile outFile("06.jpg",CFile::modeCreate|CFile::modeWrite);
LPSTR buffer = (LPSTR)GlobalLock((m_pSet->m_pic).m_hData);
outFile.WriteHuge(buffer,(m_pSet->m_pic).m_dwDataLength);
GlobalUnlock((m_pSet->m_pic).m_hData);
outFile.Close();
}
为什么图片小于64k没问题,大于64k就截断了?高手帮忙
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货