首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FormatMessage在lpBuffer中返回NULL

FormatMessage在lpBuffer中返回NULL
EN

Stack Overflow用户
提问于 2014-01-02 19:46:13
回答 2查看 838关注 0票数 1

我打电话给SetupCopyOEMInf是为了复制设备驱动程序的.inf文件( MSFT说:'SetupAPI继续用于安装设备驱动程序

调用正在返回false,因此我将按docs的说法调用GetLastError (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM)。这里返回的值是十进制中的E000024B3758096971。但是,当我使用来自FormatMessage的返回值调用按规定时,lpBuffer为NULL。

此外,还试图找出SetupCopyOEMInf失败的原因(它似乎适用于某些.inf文件,但对其他文件却不起作用)。这是Windows8.1

Puzzling...Any的想法在那里?

谢谢!

代码:

代码语言:javascript
复制
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);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-02 20:47:54

不支持所有错误代码。。您找到的是ERROR_FILE_HASH_NOT_IN_CATALOG,它不包括在FORMAT_MESSAGE_FROM_SYSTEM中。在系统消息资源中,setupapi.h错误似乎没有它们的任何预定义文本。您必须自己编写错误字符串。

票数 7
EN

Stack Overflow用户

发布于 2014-03-25 18:14:35

尽管这篇文章是在一段时间前创建的,但实际上您可以通过使用HRESULT_FROM_SETUPAPI宏(如微软在这里发布的http://msdn.microsoft.com/en-us/library/windows/hardware/ff545011%28v=vs.85%29.aspx)获取文本。这将将返回的错误代码映射到可以在FormatMessage函数中使用的错误代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20890605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档