2013-07-16 64 views
0

我想在Windows XP上調試一個C++應用程序,當我開始調試模式時,所有的初始化完成後,主窗口不會顯示。不過,它適用於W7。安裝程序修改了哪些DLL和註冊表項?

所以我檢查了MSI安裝程序我有可用的應用程序和安裝應用程序後,問題似乎也消失了。我卸載了應用程序,它仍然工作。

我需要知道哪些註冊表項和DLL安裝程序修改,以便我可以確定問題。有沒有辦法做到這一點?

+2

不平凡。您當然可以拍攝windows/system32目錄的快照(並希望這是安裝文件的位置 - 很可能是,但您無法確定)以及註冊表的快照 - 然後比較兩者。 –

+0

您也可以打開msi的診斷日誌記錄並查看日誌。啓用msi日誌記錄 - 使用以下命令從命令行進行安裝:msiexec/i WhatYouAreInstalling.msi/l * v c:\ WhereYouWantToLog.log' –

回答

1

問題已解決。問題在於應用程序會嘗試獲取對空對象的鎖定,在其上失敗,然後釋放鎖定。所以當下一次獲得時,應用程序會崩潰。奇怪的是,相同的代碼在Windows 7上工作得很好,但我的猜測是Win API在鎖定部分有一些改進。

進程監視器會一直有用,但安裝有waaay太多線程和註冊表的變化,以便能夠跟隨。該快照會一直那樣複雜進程監視器診斷日誌

謝謝你的幫助,夥計:)

3

是的。微軟的Process Monitor是免費的,並跟蹤每個文件I/O和註冊表讀/寫程序,包括安裝程序。但是,這樣的變化很可能會有很多。

因爲procmon作品監測過程,因爲他們跑,你就必須重新運行安裝程序。

相關問題