3
이유가 무엇입니까?DllMain에서 IDirect3D9 :: CreateDevice()를 호출하면 응답이 없습니다.
내가 IDirect3D9 :: CreateDevice를을 (전화 드렸습니다 DLL_PROCESS_ATTACH에 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에서 기다리고하지 너무 끊고됩니다) : 그의 대답을 수락! :) – Goz
완료, 미안 지연 : –