ATL DoModal 失败,返回-1
调用环境 , 有一个服务作为程序A的守护进程,IE通过 websocket之类的方法连接到程序A , A调用 动态库B.dll ,B执行相关函数,弹出界面。
通常情况下,界面时可以正常弹出的 。但是在个别用户 某次启动电脑后,B的界面就一直无法弹出了 , 直到重启电脑,或者重启程序A .
复现概率极低。出现问题的电脑有win7也有win10
通过日志等手段定位到了atl的DoModal处 具体说是 DialogBoxParam 返回-1 ,LastError = 0
调用代码
CxxxDlg dlg;
INT_PTR Res = dlg.DoModal();
各位大神,请问有人遇到过类似的问题吗, 或者有什么建议吗,我实在是想不出有什么可能了

相关推荐
为什么CPropertySheetImpl :: Domodal()返回-1?
szh121写道:有一个类继承自CPropertySheetImpl为什么不继承自CPropertySheet? :)
VC++ MFC复选下拉框控件源码包(含VS2008SP1兼容实现与模态对话框避坑方案)
一套开箱即用的VC++ MFC复选下拉框控件,核心只有CheckComboBox.h和CheckComboBox.cpp两个文件,完全基于原生MFC实现,不依赖第三方库,可直接集成到VS2008SP1项目中。控件保留标准CComboBox接口风格,支持在下拉列表中多选、回显已选项、键盘导航及焦点管理,方便替换原有单选下拉框。实际测试发现:在DoModal调用的模态对话框中反复打开时,会出现勾选状态丢失、点击无响应等异常;验证确认改用Create+ShowWindow方式创建的非模态对话框可彻底规避该问题。资
Windows C++图像处理:CImage类加载、保存与像素操作实战指南
在Windows C++开发中,图像处理是常见的需求,涉及图像的加载、保存、显示与像素级操作。其核心原理通常基于设备无关位图(DIB)和图形设备接口(GDI/GDI+),通过内存中的像素数据块进行高效读写。这项技术的价值在于为桌面应用提供了原生、轻量级的图像处理能力,无需引入庞大的第三方库,即可实现常见格式(如BMP、JPEG、PNG)的支持。在应用场景上,尤其适合MFC/ATL项目、需要生成独立exe的小型工具,以及对部署依赖敏感的内部应用。本文聚焦于Windows平台内置的CImage类,它正是基于GD
PreTranslateMessage中调用DoModal出错的解决
VS2010中,在PreTranslateMessage中调用DoModal出错出现当机的解决方案
CFileDialog的钩子函数解决对话框的多选之DoModal问题
<P 前几天领导问我一个问题:就是使用CFileDialog类在设置多选时选中的文件所放的文件缓冲区不知设置多大合适,设置小了DoModal返回为失败, 通过CommDlgExtendedError函数获取错误码为FNERR_BUFFERTOOSMALL(即缓冲区太小),设置大了又浪费内存。(我们 一次要选几百个文件,实在不知设置多大合适)。 我谈了我的思路:CFileDialog的数据成员m_ofn有一个数据成员为钩子函数指针,通过设置这个函数,可以勾取CFileDialog的相关消 息,比如用户改变路径的消息,然后获取当前路径的文件个数,以此为依据来设置缓冲区的大小。领导不是很明


界面
