Was kann ein Grund sein?Aufruf IDirect3D9 :: CreateDevice() von DllMain hängt
Von DllMain() auf DLL_PROCESS_ATTACH I IDirect3D9 :: Create bin() aufrufen und es hängt
Code einfach ist, genau wie:
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() der Einfachheit halber verwendet wird, I versucht, ein eigenes Fenster zu erstellen und es zu verwenden, das gleiche Ergebnis
yep, es ist wahr, aufgelöst dies einen weiteren Faden durch das Laichen und alles zu tun, ich es brauchen (nicht cos dies für sie in DllMain wartet aufhängen zu) –
@ Andrew: Nehmen Sie seine Antwort dann! :) – Goz
erledigt, Entschuldigung für Verspätung :) –