首先:我在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/