direct3d11 - IDXGIFactory->CreateSwapChain 设置系统错误 0X594

标签 direct3d11

我正在开发一个系统,我想在该系统中拦截 Direct3D 调用以创建平铺显示。我正在使用类似 APITrace 的拦截器来创建消息流并在第二个程序中重新创建调用,就像旧的 Chromium 项目一样。应用程序端工作正常,但处理消息流的程序却不能。我发现,当我调用 CreateSwapChain() 时,函数返回 S_OK 但 GetLastError() 返回“错误 = 0x00000594:无法在没有模块句柄的情况下设置非本地钩子(Hook)。”我在调用 CreateSwapChain() 之前使用 GetLastError() 检查错误状态,并且没有错误。这个错误对我来说没有意义。有人能解释一下吗?

最佳答案

我发现了问题。 CreateSwapChain 函数的参数 pDesc 结构包括一个输出窗口句柄。由于消息流中包含消息处理端的参数,因此在处理器端调用函数之前,必须将窗口句柄替换为正确的句柄。

关于direct3d11 - IDXGIFactory->CreateSwapChain 设置系统错误 0X594,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32911536/

相关文章:

c++ - 顶点着色器中的 Direct3D11 错误顶点变换

c++ - 如何从 Direct3D 11 中的 CPU 访问帧缓冲区?

resize - ID3D11On12Device::AcquireWrappedResources() 中的额外交换链缓冲区引用

c++ - D3D11坐标系

c++ - 无法在 Windows 应用商店应用程序 8.1 中使用 fstream 创建文件

performance - 当我每帧写入单个顶点缓冲区数千次时,如何提高 Direct3D 的性能?

c++ - Direct3D11(C++) : Updating Texture coordinates in constant buffer?

c++ - 我正在尝试为正方形设置棋盘纹理

c++ - 导致崩溃的矩阵

c++ - D3D11 中语义和顶点布局的意义是什么?