构造D3D对象时的参数传递问题。
我的运行平台时VC8.0,DirectX用的时D3D9,2006年8月的版本。
构造一个D3D的对象,传参的时候,有一个参数是d3dDevice,它是一个指针的指针,下面的语句编译没有错误,可是运行时就会出错,
LPDIRECT3DDEVICE9 d3dDevice = NULL;
g_pD3D-> CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, this-> GetParent()-> m_hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp, &d3dDevice )
非法访问内存。给d3dDevice赋值为NULL,十有八九是要出错的,那么应该怎么写呢,d3dDevice这个参数到底怎么处理呢。按理说它是一个out参数,不赋值为啥不行呢?
[解决办法]
你确定是由于为d3dDevice这个接口赋值为NULL才导致程序出错不能运行吗?
[解决办法]
dxsdk 当中那么多的例子啊, 参考一下就知道了
先是有一个类似这样的调用的
if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
return E_FAIL;
然后把&g_pD3D作为参数传递给,CreateDevice函数的
[解决办法]
错误百分之百是LZ自己的原因。