2011-05-09 129 views
0

我爲我的應用程序啓用了堆選項,然後啓動應用程序。但是它沒能從下面的錯誤信息開始。我的應用程序是一個DCOM服務器。當我嘗試調試應用程序時,甚至在執行主要方法之前,它甚至無法執行。應用程序驗證程序不允許啓動我的應用程序

可能是什麼問題?禁用應用程序驗證程序選項並啓用Gflags.exe的整頁堆後,應用程序啓動正常

應用程序無法正確初始化(0xc0000005)。

請幫我

+0

該錯誤意味着某些DLL無法加載。 – 2011-05-09 04:49:57

+0

我還沒有嘗試COM/DCOM服務器的應用程序驗證程序,但很可能它無法使用它們。我用COM服務器試了很多其他分析/分析工具,如果有的話,它們都不能很好地工作。 – 2011-05-09 06:40:08

+0

我無法在特定計算機上的Application Verifier中啓用Heap選項啓動任何應用程序。不是單獨的DCOM服務器。我現在才測試過 – Maanu 2011-05-09 06:46:43

回答

0

0xC000005是訪問衝突,例如空指針取消引用。從理論上講,這可能是由於LoadLibrary失敗後失敗的GetProcAddress造成的。考慮到堆選項改變了行爲,我不懷疑GetProcAddress,而是malloc,在全局的構造函數中的某處調用。 (如果你使用operator new而不是malloc,你會有一個未被捕獲的C++異常)

相關問題