找回密码
 立即注册

QQ登录

只需一步,快速开始

工控课堂 首页 工控文库 上位机编程 查看内容

C++问题堆栈大小引发的大

2022-4-6 21:39| 发布者: gkket| 查看: 834| 评论: 0

摘要: 背景同样的程序,在两个不同的计算机上运行。台式电脑运行正确,一点错没有,但是当我把程序放到笔记本上运行时,出现了莫名奇妙的错误。win32的打开文件对话框出现问题,打开直接没有反应,每次重启之后才能能打开 ...

背景

同样的程序,在两个不同的计算机上运行。台式电脑运行正确,一点错没有,但是当我把程序放到笔记本上运行时,出现了莫名奇妙的错误。

win32的打开文件对话框出现问题,打开直接没有反应,每次重启之后才能能打开文件选择界面,但是没办法跳转到其它路径,只能选择默认路径下的文件。
ok,手动改默认路径,选到心仪的文件,问题又来了。thread_monitor::launch: _beginthreadex failed,报这个错,锁定函数,发现是并行库tbb的问题,一顿操作(搜索),似乎就我自己有这样的问题,完蛋。

解决

由于对win32的系统api不太熟悉,没有第一时间找到原生的错误,一直将问题归咎于系统,遂反复更新系统,依然无效,于是当前唯一有效的方法——等win10的更新。。。。。。

今早根据GetOpenFileName,也就是第一个出错的函数,搜索到CommDlgExtendedError这个关键函数,返回win32 dialog的错误码。2----CDERR_INITIALIZATION, 内存不足导致初始化错误。

明确方向,增大文件名缓冲区大小,无效。内存?一个dialog要个啥的内存。麻了。。。。。。

内存,栈,堆,程序初始哪来的堆? 栈,我也没对栈干什么啊! 莫非。。。。。。

堆栈保留大小,卧槽,这谁设置的堆栈大小,应该是我,为啥?不知道(傻逼)。删除,成了。

结论

不要轻易设置堆栈保留大小,会出大问题,影响心理健康,世界和平。

关注公众号,加入500人微信群,下载100G免费资料!

最新评论

热门文章
关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 17:26 , Processed in 0.069294 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部