winform中的C ++非托管代码

时间:2012-08-30 16:10:55

标签: c# c++ winforms directx

首先:我在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上询问,建议也在这里询问。

1 个答案:

答案 0 :(得分:0)

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