将自己绘制的CBitmap保存到数据库里;

xiaogang_1 2008-05-28 11:30:20
我自己在内存dc里绘制了一个CBitmap,现在我需要对这个CBitmap对象进行保存到access数据库里,对数据库的操作我使用别人写好的类,其中里面有
BOOL AppendChunk(LPCSTR strFieldName, LPVOID lpData, UINT nBytes);方法,
我利用这个方法这样保存CBitmap对象,运行出错,请高手指教啊,
BITMAP bm;
m_memBitmap.GetBitmap(&bm);
pSet->AppendChunk("Bmp",LPVOID(&m_memBitmap), bm.bmWidth * bm.bmHeight);

怎么写才是正确的啊,在线等啊!
...全文
185 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
justinm 2008-05-29
  • 打赏
  • 举报
回复
先把DDB转成DIB,之后存数据库。http://hi.baidu.com/lufa2014/blog/item/98c9ff1103bc4c11b9127bc4.html 里面有描述

存二进制数据的请看下这里面的,有源码http://www.vckbase.com/document/viewdoc/?id=252
快乐鹦鹉 2008-05-28
  • 打赏
  • 举报
回复
但数据库里根本就没有二进制数据库,也就是说,添加失败,
==什么叫没有二进制数据库?BMP字段是什么类型?你怎么确认没有数据的?
xiaogang_1 2008-05-28
  • 打赏
  • 举报
回复
您提供的这个方法确实正确啊,但是还是有点小问题啊,我调试程序,发现AppendChunk的返回值是1,但数据库里根本就没有二进制数据库,也就是说,添加失败,
快乐鹦鹉 2008-05-28
  • 打赏
  • 举报
回复
记得最后 delete[] pByte;
快乐鹦鹉 2008-05-28
  • 打赏
  • 举报
回复
pSet->AppendChunk("Bmp",LPVOID(&m_memBitmap), bm.bmWidth * bm.bmHeight);
bm.bmWidth*bm.bmHeight所得大小是图片数据的大小,m_memBitmap是CBitmap类对象,并不是指向图像数据。
这样尝试:
DWORD dwSize = bm.bmWidth*bm.bmHeight;
BYTE *pByte = new BYTE[dwSize];
DWORD dwCount = m_memBitmap.GetBitmapBits(dwSize, pByte);
if(dwCount == dwSize)//这里你调试一下,看看dwCount是多少
{
pSet->AppendChunk("Bmp",pByte,dwCount);
}
muroachanf 2008-05-28
  • 打赏
  • 举报
回复
请参见http://www.vckbase.com/document/viewdoc/?id=252
图片原理一样
hihi000 2008-05-28
  • 打赏
  • 举报
回复
你能将保存的那段代码发给我参考一下吗? 我也和你做类似的东西.
我的油箱xuchunlei2008@tom.com
谢谢!
xiaogang_1 2008-05-28
  • 打赏
  • 举报
回复
数据已经保存到数据库里,但是没有最终解决我的问题啊,我原想直接保存CBitmap,然后用
BOOL GetChunk(FieldPtr pField, LPVOID lpData);
BOOL GetChunk(long index, LPVOID lpData);
BOOL GetChunk(LPCSTR strFieldName, LPVOID lpData);
BOOL GetChunk(long index, CBitmap &bitmap);
BOOL GetChunk(LPCSTR strFieldName, CBitmap &bitmap);
最后一个函数得到CBitmap对象,可是我现在得到都是二进制,我怎么把这些二进制变为一个CBitmap对象啊!!!

急啊!!
scq2099yt 2008-05-28
  • 打赏
  • 举报
回复
添加数据后pSet->Upate();
hihi000 2008-05-28
  • 打赏
  • 举报
回复
请问楼主问题解决了吗?
xiaogang_1 2008-05-28
  • 打赏
  • 举报
回复
哈哈,不好意思啊,刚才我忘了更新了,我现在再去读取二进制啊,证明我写的对不,成功后,马上结贴

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧