Я пытаюсь создать Dll, который будет обрабатывать все мои рендеринга, я пытаюсь инициализировать Direct X, но я получаю следующее сообщение об ошибке:Использование DirectX внутри Dll
DXGI ERROR: CreateDXGIFactory cannot be called from DllMain. [ MISCELLANEOUS ERROR #76: ] Exception thrown at 0x00007FF978181F28 in Engine.exe: Microsoft C++ exception: _com_error at memory location 0x000000541631BE90.
Я никогда не напрямую позвонить CreateDXGIFactory я только называю D3D11CreateDevice до сбоев программы здесь код для D3D11CreateDevice:
HRESULT hRes;
D3D_FEATURE_LEVEL featureLevel;
m_pConsole->WriteToConsole("Creating D3D11 device !");
hRes = D3D11CreateDevice(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, D3D11_CREATE_DEVICE_DEBUG, NULL, 0, D3D11_SDK_VERSION, &m_pD3D11Device, &featureLevel, &m_pD3D11DeviceContext);
вызова этой функции не в Dll основном она находится в функции инициализации, которая находится в своем собственном классе в пределах Dll.
где и когда вызывается функция инициализации класса? – Jonathan
'D3D11CreateDevice' с' pAdapter = NULL' (первый параметр) вызывает внутренний вызов 'CreateDXGIFactory'. – MooseBoys