2011-11-08 50 views
0

我對使用VS 2008構建的傳統Visual C++/MFC應用程序進行了輕微更改。我更改了.rc文件中的一些UI資源並編譯時沒有任何問題,然後將其部署到我的客戶的系統。但是,以前做得很好的程序現在無法在其中一臺服務器上運行。它可以在我的筆記本電腦和其他服務器上正常工作,其中許多與有問題的服務器基本相同。VC++應用程序無法啓動 - 但沒有錯誤

然而奇怪的是,絕對沒有任何錯誤信息。沒有消息框,沒有errorlevel設置(當在命令提示符上運行時),沒有Dr. Watson條目,沒有任何東西。

這是一個MFC應用程序,它並不包含任何非常特殊的內容。它在一些外部庫中鏈接 - 例如Xerces C++ XML parser的一些舊版本。但這可能不太相關,對吧?

該程序有一個派生自CWinApp的類,我試圖在其構造函數中添加一些日誌記錄。基於此,它看起來甚至沒有達到這個構造函數。

有問題的服務器運行的是Windows Server 2003 Standard Edition Service Pack 2,我們正試圖在遠程桌面會話中運行該程序。 (由於客戶端的環境,我現在不能輕易地在控制檯會話中測試)。

我恢復了版本控制的更改,但沒有幫助 - 但我不知道是否自己構建了以前安裝的版本(即使在這臺服務器上運行得也很好),或者它是由別人構建的。

也嘗試重新安裝Visual C++運行時庫,當然重新啓動Windows,但都沒有幫助。現在我真的沒有想法......任何線索我可以嘗試或檢查?

回答

1

可能發生了一些錯誤,但表現不佳,空catch()語句或類似語句。

您可以嘗試安裝Windows的調試工具WinDbg以查看在嘗試運行時是否可以獲取更多信息。由於下載量相當小,所以可能將其安裝在客戶的PC上。

但首先檢查您的應用程序的事件查看日誌,也許有一些東西可以擺脫一些光。

+0

是的 - 看事件查看確實有幫助。不是應用程序部分,但系統。有消息告訴我所討論的服務器沒有使用所有Boost DLL的正確版本。當然,丟失的DLL幾乎是我想到的第一件事,但我也認爲Windows應該已經顯示了一個消息框,如果這是問題所在。天啊。 – Reunanen

相關問題