2011-05-09 106 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++异常)

相关问题