您现在的位置是:人工智能 >>正文
思维调试:理解 DDE 的初始化过程
人工智能8357人已围观
简介最近有人问我下面这个问题,我们依然可以使用之前我提到的 “思维调试” 来研究研究。我们碰到了一个技术问题。当在资源管理器中双击打开文档时,资源管理器不会启动我们的应用程序。更加奇怪的是,如果我们将一个 ...
最近有人问我下面这个问题 ,调试我们依然可以使用之前我提到的理解 “思维调试” 来研究研究。
我们碰到了一个技术问题 。初始程当在资源管理器中双击打开文档时,化过资源管理器不会启动我们的调试应用程序。
更加奇怪的理解是,如果我们将一个调试器挂接到资源管理器进程,初始程并在 kernel32 模块的化过 CreateProcessW 处下断点 ,然后等待 CreateProcess 返回,调试并在调试器中继续执行 ,源码下载理解则文档可以正常打开 。初始程但是化过,如果我们不做任何等待 ,调试应用程序也可以正常打开 ,理解但是初始程它不会加载文档,在这种情况下 ,我们得到了这样的错误信息:Windows 找不到 ‘abc.lit’。请确保你输入了正确的文档名称,然后重试。
下面是建站模板我们使用的命令行 :“F:\Program Files\LitSoft\LitWare\LitWare.exe” /dde到底是哪里出了问题呢 ?如果你仔细研究过 DDE 初始化的工作原理文章 ,那么我想你应该已经知道原因了 。
回想一下,通过 DDE 打开文档是通过首先查找 DDE 服务器来完成的 ,如果未找到,则手动启动服务器并重试 。上面的命令行显然已注册为与 ddeexec 关联的命令。亿华云
我们有两个线索:首先是文档名称本身在命令行上不存在。(这不可能是直接执行,因为程序不知道它应该打开什么文档!但是这条线索是命令行上的短语 /dde。显然,资源管理器尝试第二个 DDE 对话打开文档时出现问题。让资源管理器等待几秒钟可以解决问题的事实使原因显而易见 :DDE 服务器初始化和侦听自身的速度很慢。香港云服务器资源管理器启动服务器并尝试与其通信 ,但服务器尚未准备就绪,因此不响应 DDE 启动 。
如何解决这个问题?
外壳程序假定 DDE 服务器在输入空闲时已准备好接受连接 。一旦 DDE 服务器上的 WaitForInputIdle 返回 ,资源管理器将第二次尝试启动 DDE 会话 。此修复程序是让应用程序在开始处理消息之前启动并运行其 DDE 服务器。
我的猜测是应用程序将其 DDE 服务器移动到后台线程以提高启动性能 ,因为 DDE 服务器不参与正常的程序操作。云计算
但是这太糟糕了,当传递 /dde 标志时 ,程序忘记在输入空闲之前启动并运行 DDE 服务器 。让 DDE 服务器运行很重要,但它错过了正确的时间点。总结
如果你要实现了一个 DDE 服务器,请确保在主线程开始处理消息之前就启动它 。否则 ,应用程序启动和尝试与之通信的外壳之间存在竞争条件。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“商站动力”。http://www.noorid.com/news/358a9099551.html
相关文章
关键基础设施的网络安全要点
人工智能自大流行开始以来,关键基础设施的定义已经扩大。如所见,关键基础设施不仅仅关乎国家安全或对供水或电网的威胁,还对食品和材料供应链、能源管道和医疗设施的攻击增加有所影响。网络安全和基础设施安全局(CISA ...
【人工智能】
阅读更多快轮(Fastwheel)(创新科技为城市交通带来的变革)
人工智能在城市交通日益拥堵的背景下,个人电动车作为一种便捷、环保的出行工具逐渐受到人们的青睐。而快轮作为一种高性能的个人电动车,以其出色的操控性能和先进的科技配置,成为市场上备受瞩目的品牌。本文将详细介绍快轮 ...
【人工智能】
阅读更多哈弗国际(以创新和可持续发展引领汽车行业进步)
人工智能哈弗国际作为一家知名的汽车制造企业,以其卓越的品质和领先的技术在全球范围内赢得了广泛赞誉。本文将深入探讨哈弗国际的发展历程,以及其在汽车行业中的优势和创新之处,带您了解这家领军企业的成功之道。背景介绍 ...
【人工智能】
阅读更多