我正在尝试在Windows XP上调试C ++应用程序,当我启动调试模式时,在完成所有初始化后,主窗口将不会显示。但是,它适用于W7。
所以我检查了我可用于应用程序的msi安装程序,安装应用程序后,问题似乎消失了。我卸载了应用程序,它仍然有用。
我需要知道安装程序修改了哪些注册表项和DLL,以便我可以识别问题。有没有办法做到这一点?
答案 0 :(得分:3)
是。 Microsoft的Process Monitor是免费的,它跟踪程序所做的每个文件I / O和注册表读取/写入,包括安装程序。但是,可能会有许多这样的更改。
由于procmon
在运行时监视进程,因此您必须再次运行安装程序。
答案 1 :(得分:1)
问题解决了。问题是该应用程序将尝试获取对空对象的锁定,失败,然后释放锁定。因此,当下一次获取时,应用程序将崩溃。奇怪的是,相同的代码在Windows 7上运行得很好,但我的猜测是Win API在锁定部分有一些改进。
进程监视器本来是有用的,但是安装程序已经有太多的线程和注册表更改才能跟进。 快照将像 Process Monitor 和诊断日志记录一样复杂。
谢谢你的帮助,伙计们:)