C++中的winform
问题描述:
第一非托管代码:我使用C#和C++在Windows 7C++中的winform
我已经创建了一个在C基本渲染引擎++与DirectX 10,它的工作原理不啻为一个独立的应用程序。但是,当我发送的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到父窗口,而不是直接使用父窗口句柄。
'Control.Handle'(一个表单是一个控件)是一个IntPtr。如果你想将它转换为一个字符串,只需调用它的ToString方法即可。 – Tergiver
是的,我原来是这么做的。相同的错误寿。 – Gosso
如果您使用的是64位版本,那么会失败,因为指针是64位,而uint只有32位。 –