首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows任务调度程序中来自任务的0xC0000142错误

Windows任务调度程序中来自任务的0xC0000142错误
EN

Stack Overflow用户
提问于 2021-04-13 15:37:07
回答 1查看 1.7K关注 0票数 1

我以前有许多C++ .exe程序(与C++ Builder XE7一起开发)在Windows2008R2数据中心服务器中按计划运行任务。这些任务是由系统帐户运行的,我以前从未遇到过任何问题。

最近,我将这些任务导入新的Windows2019数据中心服务器,并在任务计划程序中设置这些任务。使用相同的系统帐户来运行这些任务,但通过更新的Windows Server,这些任务现在给出的运行结果为0xC0000142。

我在网上找到的大多数资源都说增加了注册表编辑器中的桌面堆大小--我已经多次这样做,每次增加之后都重新启动服务器,但是使用这种方法仍然得到相同的结果,所以我将桌面堆大小重新设置为原来的值。

我还认为这与缺失的C++再发行表有关--新服务器只在2015-2019年有可再发行的服务器,而2008年的R2服务器与2013年和2008年的可再发行服务器一起使用。因此,我安装了这些额外的再发行程序,但仍然得到了相同的结果。

我尝试手动重新创建这些任务,尝试使用不同的域管理帐户运行任务,还尝试使用“只在用户登录/运行时才运行”设置。所有这些都导致了相同的0xC0000142错误。

此外,Windows任务计划程序历史记录或事件查看器中没有显示错误。

任何额外的提示/指导将不胜感激!

编辑:下面是过滤过程监视器日志的片段,导致退出代码和任务失败。

编辑2:已经有一个多月了,还在遇到这些问题。我已经将C++生成器升级到10.4,将我的旧代码移到新的IDE中,并重新链接了所有包/包含路径/库路径。我还使用了我正在使用的原始.exe,并将其分成多个任务和多个.exe文件--现在这些拆分的任务大部分都在运行,但仍有一些任务给出了0xC0000142代码。我还试图使用GitHub - 依赖应用程序的这个工具--试图找出DLL到底失败了什么,但它只是指向了一些核心的Windows (api Windows,ext-ms-win-.dll)。我觉得这个输出是误导的,有人知道有什么更好的工具来确定缺失的DLL吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-09 19:48:04

我想出了我的问题所在。在我的例子中,带有0xC0000142错误的程序使用了WININET。在我的cpp文件顶部,我有#pragma link "WININET.LIB"。Windows Server 2019不支持WININET库,因此尝试使用它会导致某些系统DLL初始化失败。通过删除代码中的#pragma link语句和替换/删除不必要的WININET函数,它允许我的程序在WindowsServer2019上运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67078039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档