【发布时间】:2016-08-14 14:50:34
【问题描述】:
我正在尝试创建一个将处理我的所有渲染的 Dll,我正在尝试初始化 Direct X,但我收到以下错误消息:
DXGI 错误:无法从 DllMain 调用 CreateDXGIFactory。 [杂项错误#76:] 在 Engine.exe 中的 0x00007FF978181F28 处引发异常:Microsoft C++ 异常:内存位置 0x000000541631BE90 处的 _com_error。
我从不直接调用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 main 中,它在一个初始化函数中,该函数在 Dll 中它自己的类中。
【问题讨论】:
-
类初始化函数在何时何地被调用?
-
D3D11CreateDevice和pAdapter=NULL(第一个参数)导致对CreateDXGIFactory的内部调用。