2012-08-30 106 views
1

第一非託管代碼:我使用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位。 –

回答

0

必須創建一個CHILD到父窗口,而不是直接使用父窗口句柄。