• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

声明public类型变量过多,引起内存泄露

gaosonglove 2010-07-05 09:27:10
程序竟然在初始化的报错,提示在0x008cb137引起的异常0xC00000FD:StatckOverflow,在chkstk.asm处中断,经过测试发现子窗口在初始化的时候按钮控件变量类型声明过多引起的,总共声明了有13个CButtonST类型public变量.单步调试发现程序在winmian之后报错,没有经过InitInstance(),InitDialog()这些函数。我需要这些变量和控件绑定,可出现这报错是第一次遇到。将来在子窗口还要声明很多变量,到底是什么原因引起?如何解决此问题?
请教高手,谢谢
...全文
132 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hongya6088 2010-07-05
重点排查资源释放
回复
muzizongheng 2010-07-05
应该是资源没有释放, 和是否public, 申请多少个 无关的。
回复
sanguomi 2010-07-05
你再仔细看下, 估计是PUBLIC 的变量释放有问题
回复
Sky-Yang 2010-07-05
CButtonST有问题,否则就是你关联的时候出问题
回复
jastdoit 2010-07-05
内存泄露应该不会是因为变量申明过多引起的,有没有可能是已使用过的变量的内存没释放?
回复
teleinfor 2010-07-05
不至于吧,兰州这个结论下的有点雷啊!
我看还是你那个ButtonST造成的,查查它都干啥了。。。
回复
lixung 2010-07-05
楼上的2位速度可是够快:)
回复
lixung 2010-07-05
总共声明了有13个CButtonST类型public变量

CButtonST里面有什么东西,很多成员变量??13个多吗?不多!
我觉得不是这个问题,如果CButtonST里面变量不是变态的多,问题就可以断定在其他地方!

建议lz先增加stack的大小比如2M,如果问题不能解决贴出来CButtonST看看:)
回复
如果你只声明了几万个变量,这是不会的。
回复
踏实每一步 2010-07-05
StatckOverflow
1 操作大于了你分配stack内存。
2 每个程序都设置了,statck的最大值,当程序使用statck大于这个值,就overflow.
回复
Eleven 2010-07-05
又发一遍???
回复
悟迟 2010-07-05
测试发现子窗口在初始化的时候按钮控件变量类型声明过多引起的
你是怎么测试的?屏蔽掉某些后就不报错了?
回复
jyh_baoding 2010-07-05
可能是析构有问题
回复
smallfishff 2010-07-05
声明多少变量都不会有问题的.除非这个类变量构造函数有问题.
你可以将CButtonST换成CButton标准MFC类.看看有没有问题.
如果还有问题 就出在框架类中.如果没有问题 就出在CButtonST类中.这样细分排查.
回复
悟迟 2010-07-05
声明public类型变量过多,引起内存泄露,这个结论不成立
回复
jameshooo 2010-07-05
栈溢出错误,典型的无限嵌套函数调用,这个问题很容易找到原因,当出错中断时,打开函数调用栈窗口,从下往上找,看看哪个函数被调用了N次,就是这个函数中的某个调用间接引发了自身被不断重入。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2010-07-05 09:27
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……