急,请教一问题,关于调用IStream中 Write函数报错

gaosonglove 2010-11-02 10:06:42
现在遇到了一个很郁闷的问题,找了一天,没找到原因所在。实在是万不得已,才来麻烦大家。
我写了一函数,实现的是类似于QQ的单聊窗口,绘制QQ秀。在每次创建聊天窗口时,调用此函数,绘制用户头像。当创建一个聊天窗口时,调用此函数没什么问题,但是创建多个聊天窗口,调用此函数有时候问题就出来了,strPhotoByte明明是有数据,但是在调用pStream->Wirte后,报错,提示内存异常。
最后一次运行SetBytePhto函数,TRACE显示相关参数内容:
SetBytePhoto 内存地址0B5F7E10 塒NG size 14287
但是运行到pStream->Write位置时,就报错,提示: 0x77c172e3 处未处理的异常: 0xC0000005: 读取位置 0x0b5fb000 时发生访问冲突。然后查一下strPhotoByte内存地址,却不再是0B5F7E10,而是0xffffffff,size大小却不再是14287,而是433256。
究竟是什么原因造成这样的错误?请教高手解答,谢谢。
void CStaticImage::SetBytePhoto(BYTE* strPhotoByte,int size)
{
if(strPhotoByte == NULL || size < 1)
return;
Create(); //创建对话框
HGLOBAL hMem = GlobalAlloc(GMEM_ZEROINIT|GMEM_MOVEABLE|GMEM_NODISCARD,size);
IStream *pStream;
HRESULT hr = CreateStreamOnHGlobal(hMem, TRUE, &pStream);
if(FAILED(hr))
return;
TRACE("SetBytePhoto 内存地址%p %s %d\n",strPhotoByte,strPhotoByte,size);
hr = pStream->Write(strPhotoByte,size, NULL); //********报错位置
if(FAILED(hr))
return;
delete m_img;
m_img=NULL;
m_img =new Image(pStream,TRUE);
Invalidate();
}
...全文
112 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaosonglove 2010-11-03
  • 打赏
  • 举报
回复
没人知道吗?自己顶
gaosonglove 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iey000 的回复:]
友情帮顶~~~
[/Quote]
谢谢
C++大学教程(目录) 第1章 计算机与C++编程简介-------------------------------------------------1 1.1 简介--------------------------------------------------------------1 1.2 什么是计算机------------------------------------------------------3 1.3 计算机组成--------------------------------------------------------3 1.4 操作系统的变革----------------------------------------------------4 1.5 个人计算、分布式计算与客户/服务器计算-----------------------------4 1.6 机器语言、汇编语言和高级语言--------------------------------------5 1.7 C语言与C++的历史--------------------------------------------------6 1.8 C++标准库---------------------------------------------------------7 1.9 Java、Internet与万维网--------------------------------------------7 1.10 其它高级语言------------------------------------------------------8 1.11 结构化编程--------------------------------------------------------8 1.12 典型C++环境基础---------------------------------------------------8 1.13 C++与本书的一般说明----------------------------------------------10 1.14 C++编程简介------------------------------------------------------11 1.15 简单程序:打印一行文本-------------------------------------------12 1.16 简单程序:两个整数相加-------------------------------------------15 1.17 内存的概念-------------------------------------------------------18 1.18 算术运算---------------------------------------------------------19 1.19 判断:相等与关系运算---------------------------------------------21 1.20 新型头文件与名字空间---------------------------------------------24 1.21 有关对象的思考---------------------------------------------------25 小结------------------------------------------------------------------27 术语------------------------------------------------------------------29 自测练习--------------------------------------------------------------31 自测练习答案----------------------------------------------------------33 练习------------------------------------------------------------------34 第2章 控制结构-----------------------------------------------------------38 2.1 简

19,472

社区成员

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

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