📄 subject_47696.htm
字号:
<p>
序号:47696 发表者:tidy 发表日期:2003-07-23 11:52:38
<br>主题:简单问题帮我看一下就好~~~~
<br>内容:为什么我设置了断点,程序运行时不理它,代码如下:<BR> DWORD dwOffBits=sizeof(TGAHEADER)+tgaHeader.bEX_Length+wPalLen; <BR> DWORD get=dwSize-dwOffBits;<BR> if (get>0)<BR> AfxMessageBox(">0");<BR> else<BR> AfxMessageBox("<0");<BR> if(get>dwSize)<BR> AfxMessageBox("世界末日到了");<BR> pImage = (PBYTE)::GlobalAlloc(GPTR, dwSize);//-dwOffBits);<BR> if (!pImage)<BR> {<BR> AfxMessageBox("内存不足");<BR> return NULL; // 内存不足<BR> }<BR> AfxMessageBox("内存足le");<BR><BR>怎么也想不明白:运行结果get肯定大于0,而且总是大于dwSize,真邪门,dwOffBits也是大于0的啊,分配内存的时候,dwsize时能成功,而为dwsize-dwoffbits时总是不成功,大家说是怎么一回事情啊。我特意删了debug和release,结果还是那样!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:sdf 回复日期:2003-07-23 12:20:16
<br>内容:你应该判断dwOffBits内存分配是否成功,这是内存管理方面的最基本的问题,你的断点设置在什么地方?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:tidy 回复日期:2003-07-23 12:24:32
<br>内容: 设置了好几个:DWORD dwOffBits=....这一行,还有if(get>dwSize)这个地方。还有,我在if(get>dwsize)后面改为{AfxMessageBox("世界末日到了");]<BR> TRACE("get= %d \n dwSize=%d\n dwOffbits=%d",get,dwSize,dwOffBits);<BR> }<BR>结果世界末日输出了,后面的trace没反应 ,这是为什么,怎么感觉断点,调试失效了?<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>
<font color=red>答案被接受</font><br>回复者:Fang 回复日期:2003-07-23 12:58:38
<br>内容:typedef unsigned long DWORD;<BR><BR>明白了吗?<BR><BR>注意 unsigned !
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:tidy 回复日期:2003-07-23 14:26:34
<br>内容: 无符号长整型嘛,嗯,知道。我现在改为%uld,是这样吗?现在的问题是我设置的断点,trace好像不起作用,是不是我的什么设置有问题啊?<BR> 回复sdf:dwOffBits是一个变量,给他赋值而已,sizeof(TGAHEADER)+tgaHeader.bEX_Length+wPalLen这三个前面都用过,都没问题。<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>
回复者:Fang 回复日期:2003-07-23 15:27:29
<br>内容:还是不明白:<BR><BR> DWORD get=dwSize-dwOffBits;<BR> if (get>0)<BR> AfxMessageBox(">0");<BR> else<BR> AfxMessageBox("<0");<BR> if(get>dwSize)<BR> AfxMessageBox("世界末日到了");<BR><BR><BR>运行结果get肯定大于0,而且总是大于dwSize<BR>说明dwSize < dwOffBits, 所以get为负?(因为unsigned! 所以get为很大很大的整数,所以内存分配不成功)<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>
回复者:tidy 回复日期:2003-07-23 16:31:42
<br>内容: 我明白了,谢谢fang,确实dwoffbits太大了,主要是一个if语句,结果它的else语句没给dwoffbits赋值,搞得它贼大。<BR> 那个断点我也解决了,原来是因为调试dll时得去工程设置里的debug设置,哎,菜鸟学vc真难啊,一个小问题也搞得我半死。<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>
回复者:tidy 回复日期:2003-07-23 16:33:10
<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 + -