gpt4 book ai didi

c - FormatMessage 在 lpBuffer 中返回 NULL

转载 作者:太空宇宙 更新时间:2023-11-04 00:25:08 27 4
gpt4 key购买 nike

我正在调用 SetupCopyOEMInf 来复制设备驱动程序的 .inf 文件(MSFT 文档说:“SetupAPI 继续用于 installing device drivers”)。

调用返回 false,因此我随后调用 GetLastError,如文档所述 (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM)。此处返回的值为十进制的 E000024B3758096971。但是,当我调用 FormatMessage as prescribedGetLastError 的返回值,lpBuffer 为 NULL。

还试图弄清楚为什么 SetupCopyOEMInf 会失败(它似乎适用于某些 .inf 文件,但不适用于其他文件)。这是 Windows 8.1

令人费解...有什么想法吗?

谢谢!

代码:

BOOL result = SetupCopyOEMInf(_T("C:\\Users\\edward\\Desktop\\_Test\\cncport.inf"), NULL, SPOST_PATH, 0, NULL, 0, NULL, NULL);

//result is FALSE

LPVOID lpBuffer;
DWORD dw = GetLastError();

DWORD dwMsg = FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&lpBuffer,
2048, NULL);

最佳答案

FORMAT_MESSAGE_FROM_SYSTEM does not support all error codes .你找到的那个是ERROR_FILE_HASH_NOT_IN_CATALOG FORMAT_MESSAGE_FROM_SYSTEM 不包括在内。 setupapi.h 错误在系统消息资源中似乎没有任何预定义的文本。您必须自己编写错误字符串。

关于c - FormatMessage 在 lpBuffer 中返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890605/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com