http://www.vckbase.com/article/mfc_database/0009.htm
解决方案 »
- 为什么我给类加上DECLARE_DYNCREATE(CTest1)就报错
- ODBC Microsoft access登录失败
- 获得系统的网络状态(像Netstat一样)
- 如何绘制客户区的某一部分区域
- 为什么不能读出存储的CString数组??
- 如何根据LISTBOX选项来显示右边属性页????
- 怎么让SHBrowseForFolder弹出的对话框直接显示当前文件夹,或者显示上一次打开的文件夹?
- MFC的install project怎么制作覆盖安装
- 关于数码摄像机?
- 数据库连接 总是出错??!!!!!!!!!!!!!!!!!!!
- 用CToolbar創建的工具條為什麼不能實現Wrap功能?
- 请问我用C++做了一个windows service, 如何才能调用有界面的应用程序?
{
CStandardSet* m_pStandard = new CStandardSet();
m_pStandard->Open();
if (m_pStandard->GetRecordCount()!=0)
m_pStandard->MoveFirst();
int tempnumber = 0;
CByteArray Array1;
while (!m_pStandard->IsEOF())
{
if(m_pStandard->m_StandardName == m_standard_name)
{
Array1.Copy(m_pStandard->m_StabitmapFile);
tempnumber = Array1.GetSize();
break;
}
m_pStandard->MoveNext();
}
m_pStandard->Close();
delete m_pStandard;
DWORD dwWritten;
//**********************************************
char temp_name[_MAX_PATH];
GetTempPath(_MAX_PATH,temp_name);
strcat(temp_name,"bitmap.tmp");
HANDLE fh; for (int nIndex = 0; nIndex < tempnumber; nIndex++)
{
if (Array1.GetAt(nIndex) == 'B' && Array1.GetAt(nIndex + 1) == 'M'
&& Array1.GetAt(nIndex + 2) != 'P')
{
int HeaderLen = nIndex;// + sizeof(BITMAPFILEHEADER);
Array1.RemoveAt( 0, HeaderLen );
break;
}
}
LPBITMAPINFOHEADER bmiHeader = (LPBITMAPINFOHEADER)Array1.GetData() ; fh = CreateFile(temp_name,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,
NULL); WriteFile(fh,(LPBYTE)bmiHeader,(DWORD)tempnumber,&dwWritten,NULL);
Array1.RemoveAll(); //Relese Memory
CloseHandle(fh); return temp_name;
}void CStlibPage3::Savebmp_Data()
{
CStandardSet* m_pStandard = new CStandardSet();
m_pStandard->Open();
CString tempid = "StandardName = '" + m_standard_name+"'";
if(m_pStandard->FindLast(tempid))
{
if (strBitmapPath == "")
{
if (!m_pStandard->CanUpdate()) return;
m_pStandard->Edit();
CString strupdate = "NULL";
m_pStandard->SetFieldValue(_T("[StabitmapFile]"),COleVariant(strupdate));
m_pStandard->Update();
goto ip;
} CFile tempfile;
tempfile.Open(strBitmapPath,CFile::modeRead);
DWORD dwBufSize;
dwBufSize = tempfile.GetLength();
Array.SetSize(dwBufSize);
tempfile.ReadHuge((LPSTR)(Array.GetData()), dwBufSize);
tempfile.Close(); (m_pStandard->m_StabitmapFile).Copy(Array);
if (!m_pStandard->CanUpdate()) return;
m_pStandard->Edit();
m_pStandard->SetFieldValue(_T("[StabitmapFile]"),COleVariant(Array));
m_pStandard->Update();
}
ip:
m_pStandard->Close();
delete m_pStandard;
}
DFX_Binary(pFX, _T("[StabitmapFile]"), m_StabitmapFile);
得到大家的帮助!