首页 文章

为什么MFC应用程序在加密的硬盘驱动器环境中神秘地运行

提问于
浏览
0

我正在研究一个错误,我有一个MFC应用程序,安装Sophos Safeguard硬盘加密时安装时会发生奇怪的事情 . 我很遗憾在这里这么模糊,但我正在写这个离开办公室,所以这一切都来自我(可怜)的记忆 .

我注意到的三件事:

  • AfxGetResourceHandle()不返回一致的资源句柄 . 有一种情况我们尝试加载字符串资源,并且由于某种原因,我们从此方法获得的资源句柄与所有其他stings不同 .

  • 无法构造CDocumentTemplate . 有一个跟踪错误,我似乎无法回忆 . 我明天会编辑和发布 .

  • 此行为似乎在项目的Visual Studio 2005版本中显示,但不是Visual Studio 2008版本 . 不幸的是,转向2008版不是一种选择 .

如果我单步使用调试器,则错误并不总是可重现的 . 此外,调出消息框会改变行为,这让我觉得MFC事件的处理方式正在发生某种竞争条件,但我不确定我怎么会知道肯定的,如果我做的话,甚至我能做些什么 .

我认为有一些潜在的原因,应用程序表现得很奇怪,但我发布的更多症状 . 谁能想到我应该检查什么?

我在测试环境中运行Windows更新以确保一切都是最新的,并且我已经检查了procmon中的进程,看看磁盘加密的东西是否妨碍了文件冲突 - 它似乎没有是的,但它似乎确实涉及到某种程度,因为我们的应用程序访问临时目录中的Sophos相关路径 .

2 回答

  • 0

    如果您的代码是多线程的(我假设它是,因为您提到了竞争条件的可能性),那么可能是解密延迟暴露了并发缺陷 . 您可能希望尝试从网络共享或类似的慢速访问设备运行应用程序,以查看它是否表现出类似的问题 .

  • 0

    事实证明,防病毒软件注入的方式是防病毒软件的资源处理过程覆盖了应用程序的资源句柄 . 呸!

相关问题