我正在使用wglCreateContextAttribsARB()函数创建一个带有以下参数的OGL上下文:
const int contextAttrib[] = {
WGL_CONTEXT_MAJOR_VERSION_ARB, 4,
WGL_CONTEXT_MINOR_VERSION_ARB, 2,
WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB,
#ifdef _DEBUG
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB | WGL_CONTEXT_DEBUG_BIT_ARB,
#else
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
#endif
0
};
mContext = wglCreateContextAttribsARB_local(mhDC, shareLists, contextAttrib);
不幸的是,当我尝试创建第二个上下文与先前成功创建的某个上下文(shareLists参数)共享数据时,我收到错误 - 0xc00710dd或3221688541(由GetLastError()返回)。谷歌搜索只给出了一个结果:http://software.intel.com/en-us/forums/topic/303629我在Windows 8.1上使用GeForce 680 GTX和最新的驱动程序,所以线程对我们来说并不多。
一个奇怪的是这个错误的再现方式。当我创建与A共享数据的上下文A和上下文B,然后C与A共享数据时,只有当B在创建C(失败)之前呈现某些内容时才会发生错误。
有没有人知道可能会发生什么?
答案 0 :(得分:5)
此错误可能是HRESULT
/ SCODE
,这是一个复合值。可以使用宏访问每个部分(严重性,设施,代码):
HRESULT_SEVERITY(0xC00710DD) = 0xC0000000 //ERROR_SEVERITY_ERROR
HRESULT_FACILITY(0xC00710DD) = 7 //FACILITY_WIN32
HRESULT_CODE(0xC00710DD) = 4317 //ERROR_INVALID_OPERATION