以下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中搜索了错误代码,但也找不到它。如果它返回这段代码,必须有一种方法来找出它的含义。
如何解释这个错误代码以找出出了什么问题?
发布于 2013-02-11 12:09:36
您可以使用Google,在Google上,十六进制代码的最高结果如下:
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编程的第一件事,但我认为这回答了您的问题,再加上说明标记值将被返回给您的文档,它们指向错误发生的点。
发布于 2013-06-17 19:00:57
最后但并非最不重要的..。
我得到了同样的错误,直到我意识到我没有首先调用ID2D1HwndRenderTarget::BeginDraw()来准备绘制调用的呈现目标。
发布于 2014-10-20 17:22:09
(我刚刚创建了一个账户来投票表决Loul G.的答案,但我还没有得到投票的许可……)
我也有过同样的问题..。
当BeginDraw()和EndDraw()被按顺序调用时,您可以得到HRESULT: 0X88990001
追溯以查看调用它们的顺序。
此外,为了防止这种情况,您可以环绕BeginDraw(),EndDraw()调用,如:
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 debugginghttps://stackoverflow.com/questions/14811497
复制相似问题