RT,谢谢
解决方案 »
- 如何区分系统的进程和用户自己的进程?
- 急急急~~~请问做这样的程序该怎么做,请提供一个思路或者方案,在线等待
- 问几个最基础的问题!数据转换的
- 在vc中的对话框中,如何可以只显示最小化按钮而不是显示最大化按钮?
- 求教hook高手们 FindWindow GetWindowThreadProcessId 函数
- 谁可以给我一份<vc 技术内幕>第6版,随书CD的文件呀?
- 现有.lib和.dll文件,如何调用dll中的函数?
- 有关基于对话框的菜单问题!高分相送!
- 我怎么升级?主扳、CPU、硬盘、光驱,如何升级?
- 高分(我只能出这点分)寻找好的VC类网站!(多多益善):)
- vc中怎么做透明的按钮?
- 大脑当机了,看不出死循环,各位大哥帮忙提点下
CString FilePathName;
CFileException e;
CFileDialog dlg(TRUE,NULL,NULL,0,"jpg Files (*.jpg)|*.jpg|BMP Files (*.bmp)|*.bmp||",this);
if(dlg.DoModal()==IDOK)
{
FilePathName=dlg.GetPathName();
if(f.Open(FilePathName, CFile::modeRead | CFile::typeBinary, &e))
{
int nSize = f.GetLength();
BYTE * pBuffer = new BYTE [nSize];
if (f.Read(pBuffer, nSize) > 0 )
{
BYTE *pBuf = pBuffer;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
try
{
m_pRecordset->AddNew();
m_pRecordset->PutCollect("TARGETID",_variant_t(strTargetID));
m_pRecordset->PutCollect("INTRODUCE",_variant_t(m_Intro));
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = nSize;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)nSize; i++)
SafeArrayPutElement (psa, &i, pBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
m_pRecordset->GetFields()->GetItem("image")->AppendChunk(varBLOB);
}
m_pRecordset->Update();
}
catch(_com_error& e)
{
CString strComError;
strComError.Format("错误编号: %08lx\n错误信息: %s\n错误源: %s\n错误描述: %s", \
e.Error(), \
e.ErrorMessage(), \
(LPCSTR) e.Source(), \
(LPCSTR) e.Description()); \
::MessageBox(NULL,strComError,"错误",MB_ICONEXCLAMATION);
return;
}
delete [] pBuffer;
pBuf=0;
}
f.Close();
}