首页 文章

用于验证内部Windows数据结构的API或配置

提问于
浏览
0

我需要找到影响Windows API的内存损坏错误 . 基本上,在运行程序一段时间后, CreateWindowEx 函数返回 NULL 句柄, GetLastError() 返回1407,这意味着"Cannot find window class" . 我检查了 lpClassName 参数,没关系,该类已经注册了 . 事实上,程序通常会创建该类的许多窗口,然后突然 CreateWindowEx 拒绝创建一个新窗口并给出错误1407.此程序上只有一个线程,我们确定在问题窗口类之后没有调用 UnregisterClass 已注册 .

我们怀疑我们的程序正在破坏某些 USER32 或其他Windows数据结构 . 但是使用Application VerifierVisual Leak Detector for Visual C++运行它,没有发现泄漏或内存损坏 . 资源使用率也很低,Window句柄的数量永远不会超过2k,并且提交的内存永远不会超过50mb .

这让我想到了这个问题的 Headers :是否有一些Windows API或Windows配置选项可以按需或连续检查给定进程的Windows数据结构的状态?我已经在使用具有许多启用检查的Application Verifier,但它根本不会捕获任何错误 .

1 回答

  • 0

    我做了一个黑客,我在调用失败后对CreateWindowEx执行了一次新的调用,其参数完全相同 . 令我惊讶的是,第二次通话成功!也许这与一些时间问题有关 .

相关问题