【问题标题】:SHLoadImageFile is returning error code 6SHLoadImageFile 返回错误代码 6
【发布时间】:2011-08-09 22:24:09
【问题描述】:

我正在尝试使用 SHLoadImageFile 加载图像,但它返回的句柄无效。 我很疑惑错在哪里。因为给 SHLoadImageFile 的路径绝对没问题。

【问题讨论】:

  • 你确定支持图片的文件格式吗?您正在运行什么版本的 Windows,您要加载什么样的图像?
  • 你给出了什么路径?可能你用错了'\'。
  • @user786653 : 是的,图像的文件格式是 jpg,是的,这个 api(SHLoadImage) 支持它。

标签: c++ windows-ce


【解决方案1】:

目前的问题标题是“SHLoadImage 正在返回错误代码 6”。但是SHLoadImage return 是句柄,而不是错误代码。所以也许这意味着你打电话给GetLastError

如果是这样,则错误代码 6 在 <winerror.h> 中定义为

//
// MessageId: ERROR_INVALID_HANDLE
//
// MessageText:
//
// The handle is invalid.
//
#define ERROR_INVALID_HANDLE             6L

但是,文档没有说明 SHLoadImage 设置最后一个错误代码,所以这可能是执行早期的内容。在调用SHLoadImage之前尝试使用SetLastError将最后一个错误代码设置为0。

要获得更具体的建议,您需要包含更具体的信息,例如以“绝对没问题”的路径显示代码。如果确实如此,则该文件可能不存在。或者不是有效的图像。

干杯,

【讨论】:

  • 哦是的....我错过了..因为 ShLoadImage 返回无效句柄,我尝试使用 GetLastError 检查错误代码。
  • @ Steinbach :更具体地说,我正在查询图像存储在设备中的注册表路径,然后我将该路径(包括图像名称)作为文件名参数SHLoadImage。我确信路径的正确性,因为我已经手动重新检查了路径在设备端的存在
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 2014-07-03
  • 1970-01-01
  • 2017-06-03
相关资源
最近更新 更多