Windows SDK – C# – 调试进程退出,错误代码为-1073741502
精简版
当进程退出错误代码-1073741502时,如何确定哪个DLL无法加载(以及可能的原因)? 长版 我正在尝试为Mercurial编写一个pretxnchangegroup挂钩,作为该挂钩的一部分,我需要获取运行该命令的输出: hg日志 我用来启动和运行hg.exe进程的代码如下: string Command = "log"; Process p = new Process(); ProcessStartInfo psi = p.StartInfo; p.StartInfo.FileName = @"C:Program Files (x86)Mercurialhg.exe"; psi.CreateNoWindow = true; psi.LoadUserProfile = true; psi.RedirectStandardError = true; psi.RedirectStandardOutput = true; psi.UseShellExecute = false; psi.WorkingDirectory = Environment.CurrentDirectory; p.StartInfo.Arguments = Command; // Pass-through environment variables psi.UserName = Properties.Settings.Default.HG_User; psi.Domain = Properties.Settings.Default.HG_Domain; psi.Password = new System.Security.SecureString(); foreach (char c in Properties.Settings.Default.HG_Pass) { psi.Password.AppendChar(c); } p.Start(); p.WaitForExit(); 问题是该过程一直以错误代码-1073741502退出,而不会在标准输出或标准错误上输出任何内容.经过网上的一些研究,我发现这个错误代码与应用程序无法正确初始化有关(找不到DLL,可能?),但我不知道如何去搞清楚如何修复它. 请记住,当我通过Web推送到存储库时,会调用此挂钩(因此,IIS通过Python调用Mercurial CGI,将此程序配置为挂钩). 在一个完全不同的Web应用程序中,我能够很好地运行HG命令,而且我也可以通过执行 另外,如果我设置UseShellExecute = true,那么它执行得很好,但是我无法获得标准输出.我真的很想对Web应用程序进行Web服务调用,该应用程序能够成功执行此命令,但这是一个非常难看的解决方案. 任何想法为什么这个东西没有执行? 解决方法
我认为它可能与windows如何处理您正在产生的新进程有关.
每个进程都将使用非交互式桌面内存,直到用完Windows堆,并且不能再启动任何进程. http://www.tomshardware.co.uk/forum/217729-36-application-failed-initialize-properly-0xc0000142 http://blogs.msdn.com/b/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – .cmd和.bat文件有什么区别?
- windows-server-2012-r2 – 发布后安装问题 – 无法连接
- 如何在启动时测量Windows服务的启动时间和顺序?
- Windows – MongoDB:服务器有启动警告
- windows-8 – Windows 8是否支持Visual Source Safe?
- 在悬停或单击时更改按钮图像
- 使用Chef Solo配置Windows EC2实例并引导它
- windows – “编辑”不是cmd.exe中的有效命令?
- 如何使用__declspec(dllexport / import)从DLL /导出/导入C
- 如何在Windows上安装和使用gpg-agent?