3
可能是什麼原因?從DllMain調用IDirect3D9 :: CreateDevice()掛起
從上DLL_PROCESS_ATTACH我打電話IDirect3D9 :: CreateDevice的(的DllMain())和它掛
代碼很簡單,只是想:
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if (ul_reason_for_call = DLL_PROCESS_ATTACH) {
IDirect3D9* d3d = Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS pp = {};
pp.BackBufferWidth = 1;
pp.BackBufferHeight = 1;
pp.BackBufferFormat = D3DFMT_X8R8G8B8;
pp.BackBufferCount = 1;
pp.SwapEffect = D3DSWAPEFFECT_DISCARD;
pp.Windowed = TRUE;
IDirect3DDevice9* device = NULL;
HRESULT hr = d3d->CreateDevice(
D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
GetDesktopWindow(),
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&pp,
&device);
device->Release();
d3d->Release();
}
return TRUE;
}
GetDesktopWindow()用來爲簡單起見,我試圖創建自己的窗口和使用它,結果相同
是的,這是真的,由產卵另一個線程做的一切,我需要有解決這個(沒有DllMain的等待它COS這將掛斷太) – 2010-11-20 14:41:21
@Andrew:接受他的答案呢! :) – Goz 2010-11-21 12:41:03
完成,抱歉延誤:) – 2010-12-13 15:11:53