首先:我在Windows 7上使用C#和C ++。

我已经使用DirectX 10在c ++中创建了一个基本的渲染引擎。它可以作为独立的应用程序很好地工作。但是,当我将WinForm的Form.Handle发送给引擎时,它在D3D10CreateDeviceAndSwapChain期间崩溃,并显示以下错误:

HRESULT: 0x887a0001 (2289696769)
Name: DXGI_ERROR_INVALID_CALL


在加载表单时,我从winform获得了句柄。

unsafe {
  void *ptr=m_view.Handle.ToPointer();
  uint v = (uint)ptr;
  lhandle = v.ToString();
};


在gamedev.stackexchanged上也问了一个问题,也建议在这里问它。

最佳答案

必须为父窗口创建一个CHILD,而不是直接使用父窗口句柄。

关于c# - Winform中的C++非托管代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12201159/

10-17 00:43