Negative GetLastWin32Error()



我想知道如何调试(或者实际该怎么做)Marshal.GetLastWin32Error()的负值?

我一直在我的电脑上工作,代码很平静,突然它在另一台电脑上不起作用了,我不知道该怎么办,因为我不知道有什么错误。

这是代码(我认为是关键部分):

[DllImport("setupapi.dll", SetLastError = true)]
static extern bool SetupDiChangeState(IntPtr deviceInfoSet, [In] ref SP_DEVINFO_DATA deviceInfoData);
// and then somewhere
if (!SetupDiChangeState(info, ref device))
    throw new Exception(string.Format("Error({0}) SetupDiChangeState", Marshal.GetLastWin32Error()));

其他电脑上的异常文本为

错误(-536850389)SetupDiChangeState

此处未列出。

错误(-536850389)SetupDiChangeState

它是0xE000020B,并且可能对应于ERROR_NO_SUCH_DEVINST

查看您的DIFxAPI.h

如果程序不方便以十六进制输出错误,也可以使用calc.exe转换错误代码。

  • 首先,进入程序员模式。

  • 选择"Hex"并输入100000000(一个零和八个零)。

  • 返回"Dec"并减去错误代码的绝对值,在本例中为536870389

  • 返回"十六进制"查看十六进制错误代码,在本例中为E000020B

相关内容

  • 没有找到相关文章

最新更新