今天这个BUG再次证明了,凡事有果必有因

如何写出没有Bug的代码? 1947年9月9日,美国海军准将Grace Hopper在哈佛学院计算机实验室里使用MarkII和MarkIII计算机进行研究工作。她的团队跟踪到MarkII上的一个错误,操作人员发现是由于一只飞蛾钻到了MarkII的继电器里导致的。 团队清除了这只飞蛾,一切恢复正常。当时的工作人员记录了这样一句日志:“First actual case of bug being found.”这次著名的事件,犹... 阅读详情

我们的程序用到Flash控件进行互操作以提供更友好的界面。

为了屏蔽右键菜单,直接子类化了Flash窗口,用自己的窗口函数,在右键时不发送给Flash控件,自己处理。

测试中发现,一些情况下(主要是点击后开IE),关闭窗口销毁控件会导致崩溃。

 

1. 发现在ShellExecute这个API中会有消息循环,导致WM_CLOSE会在ShellExecute返回之前被处理

2. 改成异步ShellExecute后,发现还是会有问题,而且总是在WM_TIMER(0x0113)这个消息上。

3. Flash控件会不断生成WM_TIMER,并在其处理过程中会调用timeGetTime来进行计时。这会导致对ShellExecuteExW的间接调用,结果,是在CallWndProc返回前,窗口又被销毁了。

 

解决办法:

对窗口函数的调用前后进行嵌套计数。

父窗口在OnClose时,判断如果嵌套计数>0就不进行DestroyWindow,只是设置一个准备关闭的标志。

嵌套计数==0时,发出一个事件。父窗口收到事件后,判断准备关闭标志置上的情况下,进行DestroyWindow。

 

详细调试过程后面有空整理一下发表。

mybatis框架的简单系统 增删改查 该项目是本人做的一个基于mybatis框架的javaweb小项目,可以实现增删改查,非常有参考价值,实现数据回显。 立即下载

相关推荐

彻底解决0x80070005错误代码:全面分析与实战指南

0x80070005错误代码虽然令人头疼,但通过上述方法,我们完全有能力将其攻克。从检查磁盘空间、设置账号权限,到运行疑难解答和系统文件检查器,再到调整相关服务状态,每一步都是解决这一问题的关键。希望本文能为你提供有力的帮助,让你在使用Windows系统的过程中更加顺畅无忧。

nntxthml的博客 6933

使用mybatis进行数据插入更新 数据操作成功 返回值false

使用mybatis进行数据插入更新 数据操作成功 返回值false

T_Y_F_的博客 2937

光模块封装工艺简介

光模块按照部件可以分为芯片、光器件、光模块三个层级;按照应用领域大概可分为电信应用、数通应用两个领域;按照内部器件的封装工艺可分为TO、Box、COB三大类。 但是,无论是哪种类型的光模块,其生产工艺基本上可以分为封装、测试两大块。   那什么叫做器件封装呢?我的理解器件封装就是利用胶水、焊料、机械、热量等手段把器件按照一定的先后次序结合形成一个整体的过程,就好像早上吃的煎饼,把面粉、鸡蛋、脆饼、烤肠、葱花等这些“器件”,按照一定的顺序,通过食用油、甜面酱、加热、卷起来等手段结合到一起,形成了美味的

qq_33253182的博客 2818

【Android SDK30版本】代码明显是正确的为何升级了sdk版本号就报错或是警告呢(已解决)

Android每次升级sdk都会有惊喜,功能报错,各种警告,无法使用等问题!

PYB 4885

整理并记录几种运算放大器

运算放大器是一种十分常见的电子元器件,最近我在学习运放,以前在学校没有好好的学习,今天在B站看了唐老师讲运算放大器-唐老师讲电赛系列视频教程,记录下所学的,纯当是自己的笔记 学习运放,有两个重要的概念及重要的计算法宝,虚短vp=vn;和虚断ip=in 1反向比例运算电路 Rf可以大于、小于或等于R,起到放大、跟随、衰减输入的作用; 平衡电阻没有太高的精度要求,可加可不加; 有些运放内部集成了补偿电路,就不需要使用平衡电阻,加了反而增大误差,如OPA227 2.同向比例运放电路 .

qq_36823004的博客 6364

保姆级教程:用Python+Mediapipe实时捕捉手势,驱动Unity虚拟手模型(附完整源码)

本文详细介绍了如何利用Python的Mediapipe库和Unity实现实时手势识别与虚拟手模型驱动。通过OpenCV进行图像采集,Mediapipe提供21个手部关键点识别,结合UDP通信协议实现Python与Unity之间的低延迟数据传输。教程包含完整源码、环境配置、核心代码实现及性能优化技巧,适用于VR教育、游戏开发等需要自然交互的场景。

weixin_42531779的博客 361

安卓日志:拍照、文件读取的问题

FileUriExposedException: file:/// *** exposed beyond app through ClipData.Item.getUri() Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=999, r java.io.FileNotFoundException: /storage/emulated/0/DCIM/xxx.jpg: op

qq_52364210的博客 1193

Stata做DID平行趋势检验,用coefplot画图时遇到的3个坑及解决办法

本文详细解析了使用Stata进行DID平行趋势检验时,利用coefplot绘图可能遇到的三个常见问题及其解决方案。包括基线期选择陷阱、置信区间变形和图形元素错位,提供专业调试步骤和高阶技巧,帮助研究者高效完成学术级图表绘制。

weixin_42530458的博客 324

怎样写出没有bug的代码?

1947年9月9日,美国海军准将Grace Hopper在哈佛学院计算机实验室里使用 Mark II 和 Mark III 计算机进行研究工作。她的团队跟踪到 Mark II 上的一个错误,操作人员发现是由于一只飞蛾钻到了 Mark II 的继电器里导致的。团队清除了这只飞蛾,一切恢复正常。当时的工作人员记录了这样一句日志:“First actual case of bug being foun...

web前端技术交流群:457188470 1986

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9286

【FPGA教程案例59】深度学习案例6——基于FPGA的CNN卷积神经网络之整体实现

在课程,我们对的基本原理有了初步认识。在上一个课程,我们完成了CNN的Relu激活层、pool池化层、卷积层以及图像输入层的实现,如下图所示:在本课程中,我们将上述四个模块结合起来,构建一个简单的CNN卷积神经网络。...

FPGA/MATLAB学习教程/源码/项目合作开发 2637

如何写出没有 bug 的代码?

来源:www.cnblogs.com/sherrywasp/p/9262877.html1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室...

Java技术栈,分享最主流的Java技术 784

AMBA-CHI协议详解(七)

本节描述该协议包含的支持系统保序需求的机制。

Crazzy_M的博客 1158

如何写出没有BUG的代码

     1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 Mark III 计算机进行研究工作。她的团队跟踪到 Mark II 上的一个错误,操作人员发现是由于一只飞蛾钻到了 Mark II 的继电器里导致的。团队清除了这只飞蛾,一切恢复正常。当时的工作人员记录了这样一句日志:    First actual case o...

qianfeng_dashuju的博客 283

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

怎么才能写出没有BUG的代码

  1947年9月9日,美国海军准将Grace Hopper在哈佛学院计算机实验室里使用 Mark II 和 Mark III 计算机进行研究工作。她的团队跟踪到 ...

qianshanding0708的博客 246

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

请问:如何写出没有BUG的代码?

|作者:未知|来源:http://www.techug.com/post/write-out-no-bug-code.html 1947年9月9日,美国海军准将...

xcbeyond|疯狂源自梦想,技术成就辉煌 704

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

如何才能写出没有BUG的代码?

1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 Mark III 计算机进行研究工作。她的团队跟踪到 Mark II 上的一个错误,操作人员发现是由于一只飞蛾钻到了 Mark II 的继电器里导致的。团队清除了这只飞蛾,一切恢复正常。当时的工作人员记录了这样一句日志:” First actual case of bug being fo...

asdf8968的博客 396

转载 谁再问我如何写出没有Bug的代码,我上去就是一jio!

版权声明:本文为博Java架构俱乐部主原创文章,遵循 CC 4.0 BY-SA 版权协议 侵删 原文链接:https://blog.youkuaiyun.com/weixin_45132238/article/details/106403779 本文的一些观点可能会有少部分人不赞同,我也只是简单表达一下自己的想法。

weixin_47090923的博客 243

测试行业干了5年,从只会点点点到了现在的测试开发,总算是证明了自己

我感觉我是一个比较有发言权的人吧,我在测试行业摸爬滚打5年,以前经常听到开发对我说,天天的点点点有意思没?

自动化软件测试 397
上一篇: 鼠标光标的一个“看起来”很神奇的问题
下一篇: 团队效率模式(一)
BalonFan
博客等级 码龄26年 47粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值