getlasterror只返回系统错误代码?

时间:2019-05-29 07:45:42

标签: getlasterror

我可以假设GetLastError()返回的实际值是什么?

1。)返回值声明为DWORD,范围从0到4.294.967.295。

2。)但是,当看https://docs.microsoft.com/en-us/windows/desktop/debug/system-error-codes时,似乎 仅定义了从0到16000的错误代码。  ->这是GetLastError()文档中引用的链接: https://docs.microsoft.com/en-us/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror

我正在调用一些setupapi.h函数,例如SetupDiGetDeviceRegistryProperty,SetupDiEnumDriverInfo和SetupDiBuildDriverInfoList,当这些函数失败时,我想知道在这些情况下GetLastError返回的值是否可以容纳int。

请参阅1.)情况并非如此,而请参阅2.)情况则如此。

...
char buffer[MAXHARDWAREIDLEN];

if (!SetupDiGetDeviceRegistryProperty(deviceInfoSetHandle, &devInfoData, SPDRP_HARDWAREID, NULL, (PBYTE)buffer, sizeof(buffer), NULL))
      {
        returnValue = GetLastError();
        break;
      }
...

0 个答案:

没有答案