XP下SetSuspendState失败后GetLastError返回0.....

SKy_kid 2009-03-17 02:32:48
在XP sp3下,调用SetSuspendState(1,1,0)失败,但GetLastError()返回0。 正常情况来说如果XP不支持hibernate的话,GetLastError应该返回 ERROR_NOT_SUPPORTED才对,为什么会返回0呢,返回0不就是Error_Success么?
...全文
308 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sayang 2009-09-21
  • 打赏
  • 举报
回复
是不是说getlasterror只能获得系统支持的api的错误,如果是自己写的就不能使用,而且只会返回0?
SKy_kid 2009-03-24
  • 打赏
  • 举报
回复
MSDN上查到
Requires Windows Vista, Windows XP, or Windows 2000 Professional.
jyh_baoding 2009-03-23
  • 打赏
  • 举报
回复
看系统是否支持这个函数
SKy_kid 2009-03-23
  • 打赏
  • 举报
回复
code:
BOOL bRen = SetSuspendState( TRUE, TRUE, FALSE );
DWORD dwError = GetLastError();
DOLOG( _T( "Suspend Result: %d ErrorCode: %d\r\n" ), bRen, dwError );//在日志文件里记录状态

在不支持hibernate的Vista下bRen = 0 时 dwError = ERROR_NOT_SUPPORTED, 支持hibernate的Vista下bRen = 1, dwError = 0。 但在XPsp3下运行时日志文件里查到bRen = 0, dwError = 0,所以觉得奇怪。

Re oyljerry::引用的文章好像是说Sleep和hibernate的关系。。。
Re BuZhang_AP97091 :如果是hibernate成功的话,普通事件好像是无法唤醒的,应该按power键唤醒~ > <.
cnzdgs 2009-03-21
  • 打赏
  • 举报
回复
是SetSuspendState失败后立即调用的GetLastError吗?
oyljerry 2009-03-21
  • 打赏
  • 举报
回复
http://www.tech-archive.net/Archive/WinXP/microsoft.public.windowsxp.general/2008-02/msg04275.html
BuZhang_AP97091 2009-03-21
  • 打赏
  • 举报
回复
If FALSE, any system wake events remain enabled.

休眠了,可又被程序唤醒了

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧