首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐HRESULT误差

隐HRESULT误差
EN

Stack Overflow用户
提问于 2013-02-11 12:05:57
回答 3查看 1.3K关注 0票数 0

以下EndDraw()函数返回一个HRESULT错误代码:http://msdn.microsoft.com/en-us/library/windows/desktop/dd371924%28v=vs.85%29.aspx

文件规定:

如果该方法成功,则返回S_OK。否则,它将返回一个HRESULT错误代码,并将tag1和tag2设置为发生错误时活动的标记。 然后...and返回一个指示操作成功的HRESULT .

我得到了-2003238911 (0x88990001)的返回值,它没有出现在微软的“公共HRESULT值”页面上:http://msdn.microsoft.com/en-us/library/windows/desktop/aa378137%28v=vs.85%29.aspx

我还在WinError.h中搜索了错误代码,但也找不到它。如果它返回这段代码,必须有一种方法来找出它的含义。

如何解释这个错误代码以找出出了什么问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-11 12:09:36

您可以使用Google,在Google上,十六进制代码的最高结果如下:

代码语言:javascript
复制
D2DERR_WRONG_STATE
0x88990001
The object was not in the correct state to process the method.

http://msdn.microsoft.com/en-us/library/windows/desktop/dd370979(v=vs.85).aspx

我不知道关于图形编程或Windows编程的第一件事,但我认为这回答了您的问题,再加上说明标记值将被返回给您的文档,它们指向错误发生的点。

票数 3
EN

Stack Overflow用户

发布于 2013-06-17 19:00:57

最后但并非最不重要的..。

我得到了同样的错误,直到我意识到我没有首先调用ID2D1HwndRenderTarget::BeginDraw()来准备绘制调用的呈现目标。

票数 0
EN

Stack Overflow用户

发布于 2014-10-20 17:22:09

(我刚刚创建了一个账户来投票表决Loul G.的答案,但我还没有得到投票的许可……)

我也有过同样的问题..。

当BeginDraw()和EndDraw()被按顺序调用时,您可以得到HRESULT: 0X88990001

追溯以查看调用它们的顺序。

此外,为了防止这种情况,您可以环绕BeginDraw(),EndDraw()调用,如:

代码语言:javascript
复制
bool beginCalled;
int beginCount;//for debugging
int endCount;//for debugging
//initialize variables somewhere...

void begin(){
   rendTarget>BeginDraw();
   beginCalled = true;
   beginCount++;
}

void end(){
   if(beginCalled){
      rendTarget->EndDraw();
      beginCalled = false;
   }
   endCount++;

} 

//print counts as necessary for debugging
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14811497

复制
相关文章

相似问题

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