Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Marshal.GetLastWin32Error()何时/为什么返回负错误代码?_C#_Winapi_Interop - Fatal编程技术网

C# Marshal.GetLastWin32Error()何时/为什么返回负错误代码?

C# Marshal.GetLastWin32Error()何时/为什么返回负错误代码?,c#,winapi,interop,C#,Winapi,Interop,调用特定的Win32 API函数(从C#到Interop)时,它会失败并返回一个负错误代码 背景: 我在一个选项卡中运行的Windows8操作系统上执行此操作 函数签名 [DllImport("dxva2.dll", EntryPoint = "GetMonitorCapabilities", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool GetMonitorCapa

调用特定的Win32 API函数(从C#到Interop)时,它会失败并返回一个负错误代码

背景:

我在一个选项卡中运行的Windows8操作系统上执行此操作

函数签名

[DllImport("dxva2.dll", EntryPoint = "GetMonitorCapabilities", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetMonitorCapabilities(
            IntPtr hMonitor, ref uint pdwMonitorCapabilities, ref uint pdwSupportedColorTemperatures);




Console.WriteLine(Marshal.GetLastWin32Error());
NativeMethods.GetMonitorCapabilities(hnd,ref x,ref y);
Console.WriteLine(Marshal.GetLastWin32Error());
上述代码报告

0 -1071241844

我认为错误代码范围在0到15999之间,根据

大多数情况下,如果某个函数返回负错误代码,则它实际上是一个
uint
值。将-1071241844铸造到
uint
会得到3223725452,十六进制为0xC026258C


在google中搜索该十六进制错误代码会显示它是错误错误\u图形\u无效\u物理\u监视器\u句柄。

大多数情况下,如果某个函数返回负错误代码,它实际上是一个
uint
值。将-1071241844铸造到
uint
会得到3223725452,十六进制为0xC026258C

在google中搜索该十六进制错误代码的结果显示它是错误\u图形\u无效\u物理\u监视器\u句柄