VC++/DX9です
 リリースビルドのとき、LPDIRECT3DDEVICE9の関数を呼ぶと
access violationがおこりプログラムが強制終了してしまいます。
LPDIRECT3Dの関数を呼んでも問題はないみたいです。
どなたか原因わかりますか

struct DirectX{
LPDIRECT3D9 lpdirect3d;
LPDIRECT3DDEVICE9 lpdirect3ddevice;
D3DLIGHT9 light;
D3DXMATRIX gProjection, view, world;
LPDIRECT3DSURFACE9 depthBuffer;
Camera camera;//D3DXVECTOR3を3つまとめたもの
};
ここが問題の部分みたいです
if(!(app->directX->lpdirect3d = Direct3DCreate9(D3D_SDK_VERSION)))
return -1;
D3DDISPLAYMODE dm;
if(FAILED(app->directX->lpdirect3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &dm)))
return -1;
D3DPRESENT_PARAMETERS p = {0};
p.Windowed = TRUE;
p.BackBufferFormat = D3DFMT_UNKNOWN;
p.BackBufferWidth = app->window->width;
p.BackBufferHeight = app->window->height;
p.SwapEffect = D3DSWAPEFFECT_DISCARD;
p.EnableAutoDepthStencil = TRUE;
p.AutoDepthStencilFormat = D3DFMT_D16;