【问题标题】:How to interpret pre build error codes from Visual Studio 2010如何从 Visual Studio 2010 解释预构建错误代码
【发布时间】:2011-06-30 11:00:47
【问题描述】:

我一直在处理 Visual Studio 预构建事件,但我发现错误代码毫无帮助

例如,添加这样的预构建事件:

$(ProjectPath)\DoStuff.exe

这给了我一个错误:以代码 267 退出

或者像这样添加:

$(ProjectDir)\DoStuff.exe

这给了我一个错误:以代码 9009 退出

经过一番探讨后,可能会弄清楚需要更改哪些内容才能使命令行正常工作,但是如果我可以查找错误代码并了解其含义,那可能会简单得多。

我曾尝试用谷歌搜索其中的一些错误代码,但有些确实很难找到任何相关信息 - 例如 267 似乎相当难以捉摸。

是否有一个列表定义了所有这些错误代码?

:)

【问题讨论】:

    标签: visual-studio-2010 command-line prebuild pre-build-event


    【解决方案1】:

    避免射击信使。与 DoStuff.exe 的所有者交谈并询问这些进程退出代码的含义。

    如果您有理由相信 DoStuff 有问题并且没有正确设置退出代码,那么您可以通过重置 %errorlevel% 值来解决它。让它看起来像这样:

    dostuff.exe
    cmd /c ""
    

    您看到的错误代码可能是 SDK 的 WinError.h 文件中声明的 Windows 错误代码。错误 267 是 ERROR_DIRECTORY,“目录名称无效”。错误 9009 是 DNS_ERROR_RCODE_NOTAUTH,“DNS 服务器对区域没有权威性”。

    【讨论】:

    • 嗨 - 感谢您的回复 :) 我的调查显示这些错误与我尝试调用的 exe 或 bat 文件无关 - 在这两种情况下,错误都是指向DoStuff.exe 输出不正确。使用 $(ProjectPath)\DoStuff.exe 将导致: c:\myfolder\myProject.projDostuff.exe 如果路径中有空格,则第二个失败。这些返回代码都不能来自 DoStuff.exe,因为它永远不会被找到。 (这可以通过从文件夹中删除 DoStuff.exe 来测试;返回相同的错误)
    • 是的,应该是 $(ProjectDir),不确定 DoStuff.exe 之前的 \ 是如何消失的,或者扩展名为 .proj 的原因。嵌入空格的路径需要用双引号括起来,“$(ProjectDir)DoStuff.exe”(不需要反斜杠)。
    • 啊 - 可能之前的 \ 没有消失 - 这可能是我在重新讲述时打错了!我查看了 Windows 错误代码并找到了 9009,我认为我弄错了,因为 DNS 错误似乎与手头的情况没有任何关系。 267 代码似乎是明智的。 MS doc on WinError.h 知道为什么此命令会导致 DNS_ERROR_RCODE_NOTAUTH 错误吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2011-08-13
    • 1970-01-01
    • 2011-11-14
    • 2011-05-28
    • 2022-01-14
    相关资源
    最近更新 更多