⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_66990.htm

📁 vc
💻 HTM
字号:
<p>
序号:66990 发表者:点点汤 发表日期:2003-12-28 15:22:00
<br>主题:StretchDIBits函数
<br>内容:在视图类中两次用StretchDIBits函数显示DIB位图时,是不是xDest(或者yDest)值不能相同,比如:<BR>StretchDIBits(GetDC()-&gt;m_hDC,18,380,48,61,0,0,lWidth1,lHeight1,lpDIB1Bits,<BR>&nbsp;&nbsp;&nbsp;&nbsp;lpbmi1,0,SRCCOPY);<BR>StretchDIBits(GetDC()-&gt;m_hDC,18,300,20,36,0,0,lNewWidth,lNewHeight,lpZoomDibBits,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpbmiZ,0,SRCCOPY);就总是内存不能read<BR>但是将18,改为19则可以,这样是为什么?<BR>多谢指教!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:林建华 回复日期:2003-12-29 13:17:34
<br>内容:就总是内存不能read可能是lpZoomDibBits或者lpbmiZ内存不正确或者你设置的图像源图像的高和宽不正确
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:徐相华 回复日期:2003-12-29 13:46:13
<br>内容:但他19时是对的啊,改为17结果怎样呢?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:林建华 回复日期:2003-12-29 14:49:49
<br>内容:看代码才知道的说啊
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:点点汤 回复日期:2003-12-31 16:09:20
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;CMemoryState oldMemState,newMemState,difMemState;//检测内存是否泄漏<BR>&nbsp;&nbsp;&nbsp;&nbsp;oldMemState.Checkpoint();//检测原来内存快照<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HDIB&nbsp;&nbsp;hDIB = CreateHDIB(lpDIB,Width[i],XStart);//字符分割后的提取<BR>&nbsp;&nbsp;&nbsp;&nbsp;LPBYTE lpDIB=(LPBYTE)::GlobalLock(hDIB);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LPBYTE lpDIBBits = ::FindDIBBits(lpDIB);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDib *pDib=new CDib;<BR>&nbsp;&nbsp;&nbsp;&nbsp;pDib-&gt;Create(lpDIB);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LPBITMAPINFO lpbmi=(LPBITMAPINFO)lpDIB;<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG lWidth=::DIBWidth(lpDIB);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG lHeight=::DIBHeight(lpDIB);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG lLineBytes=WIDTHBYTES(lWidth*8);<BR>&nbsp;&nbsp;&nbsp;&nbsp;StretchDIBits(GetDC()&nbsp;&nbsp;_&gt;m_hDC,18,380,48,61,0,0,lWidth,lHeight,lpDIBBits,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpbmi,0,SRCCOPY);<BR>&nbsp;&nbsp;&nbsp;&nbsp;float fXZoomRation,fYZoomRation;<BR>&nbsp;&nbsp;&nbsp;&nbsp;fXZoomRation=(float)20/lWidth;<BR>&nbsp;&nbsp;&nbsp;&nbsp;fYZoomRation=(float)36/lHeight;<BR>&nbsp;&nbsp;&nbsp;&nbsp;HDIB hZoomDib=pDib-&gt;ZoomDIB(lpDIB,fXZoomRation,fYZoomRation);<BR>&nbsp;&nbsp;&nbsp;&nbsp;delete pDib;<BR>&nbsp;&nbsp;&nbsp;&nbsp;::GlobalUnlock((HGLOBAL)hDIB1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LPBYTE lpZoomDib=(LPBYTE)::GlobalLock((HGLOBAL)hZoomDib);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LPBYTE lpZoomDibBits=::FindDIBBits(lpZoomDib);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LPBITMAPINFO lpbmiZ=(LPBITMAPINFO)lpZoomDib;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDib *pZoomDib=new CDib;<BR>&nbsp;&nbsp;&nbsp;&nbsp;pZoomDib-&gt;Create(lpZoomDib);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG lNewWidth=pZoomDib-&gt;GetWidth();<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG lNewHeight=pZoomDib-&gt;GetHeight();<BR>&nbsp;&nbsp;&nbsp;&nbsp;StretchDIBits(GetDC()-&gt;m_hDC,17,300,20,36,0,0,lNewWidth,lNewHeight,lpZoomDibBits,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpbmiZ,0,SRCCOPY);<BR>&nbsp;&nbsp;&nbsp;&nbsp;delete pZoomDib;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReleaseHDIB(hZoomDib);<BR>&nbsp;&nbsp;&nbsp;&nbsp;newMemState.Checkpoint();//检测后来内存快照<BR>&nbsp;&nbsp;&nbsp;&nbsp;int t=difMemState.Difference(oldMemState,newMemState);//将两者比较返回值为0则无泄漏<BR>检测内存没有问题呀,真奇怪,改为17也是内存不能read,但19可以,20又不可以了,这是什么问题呢?嘿!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:林建华 回复日期:2003-12-31 17:31:12
<br>内容:delete pDib;<BR>delete pZoomDib;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReleaseHDIB(hZoomDib);<BR>&nbsp;&nbsp;&nbsp;&nbsp;不要这三句试试
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:点点汤 回复日期:2004-01-02 10:00:42
<br>内容:to fire_woods<BR>   按你所说的,虽然还偶而会出现这种错误,但的确是可以运行了,那为什么要删除<BR>delete pDib;<BR>delete pZoomDib;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReleaseHDIB(hZoomDib);<BR>这样不会造成内存泄漏吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:林建华 回复日期:2004-01-02 10:03:59
<br>内容:要在外部释放的,如果句柄被你删除的话,屏幕刷新的时候需要重画,但是句柄已经被释放掉了,那样就会出错的,一般要显示的句柄是在下一个句柄被装进来的时候释放上一个句柄的:)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:点点汤 回复日期:2004-01-10 09:42:10
<br>内容: :)<BR>&nbsp;&nbsp;我想问一下你做识别的思路?可以告诉吗
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:林建华 回复日期:2004-02-22 09:59:09
<br>内容:识别的话一般分两个部分<BR>一个是特征提取,一个是分类器,针对不同的识别要求和样本集有不同的选择
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -