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的问题,建议在这里问一下。

+0

'Control.Handle'(一个表单是一个控件)是一个IntPtr。如果你想将它转换为一个字符串,只需调用它的ToString方法即可。 – Tergiver

+0

是的,我原来是这么做的。相同的错误寿。 – Gosso

+0

如果您使用的是64位版本,那么会失败,因为指针是64位,而uint只有32位。 –

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