ID3D11Device::GetImmediateContext() crasht
Verfasst: 17.03.2010, 17:52
Hi,
ID3D11Device::GetImmediateContext() stürzt ab. Natürlich eine Funktion, die garnicht fehlschlagen kann, und selbstverständlich nur außerhalb des Debuggers, wäre ja sonst zu einfach …
Was soll ich nun machen? Ich meine, ich habe wirklich null Ahnung, was da schiefgeht – der beteiligte Code ist trivial. Bis zu diesem Funktionsaufruf sind alle Objekte in einwandfreiem Zustand, wie mir printf-Debugging flüstert …
(nichtssagend) Debug-Ausgabe in PIX (alles, was ich aus dem just-in-time-Debugger rausgequetscht bekomme ist „Access violation writing location 0x00000014.“):(nichtssagend) Ein bisschen Code:Wo soll ich anfangen?
ID3D11Device::GetImmediateContext() stürzt ab. Natürlich eine Funktion, die garnicht fehlschlagen kann, und selbstverständlich nur außerhalb des Debuggers, wäre ja sonst zu einfach …
Was soll ich nun machen? Ich meine, ich habe wirklich null Ahnung, was da schiefgeht – der beteiligte Code ist trivial. Bis zu diesem Funktionsaufruf sind alle Objekte in einwandfreiem Zustand, wie mir printf-Debugging flüstert …
(nichtssagend) Debug-Ausgabe in PIX (alles, was ich aus dem just-in-time-Debugger rausgequetscht bekomme ist „Access violation writing location 0x00000014.“):
Code: Alles auswählen
class CGPU {
private:
::ID3D11Device & m_Device;
::ID3D11DeviceContext & m_ImmediateContext;
// Erzeugt das D3D-Device.
static ::ID3D11Device & CreateD3DDevice(
DXGI::CAdapter & DXGIAdapter,
::D3D_FEATURE_LEVEL const FeatureLevel,
::UINT const DeviceFlags
) {
// … viel Code (Feature-Level für Debug-Output ermitteln), aber funktioniert soweit. (Siehe PIX-Output.)
}
static ::ID3D11DeviceContext & ImmediateContextOf(
::ID3D11Device & Device
) {
::ID3D11DeviceContext * Result = nullptr;
Device.GetImmediateContext(&Result); // PENG voll in die Fresse!
return (*Result);
}
public:
CGPU(
DXGI::CAdapter & DXGIAdapter,
::D3D_FEATURE_LEVEL const FeatureLevel,
::UINT const DeviceFlags
)
: m_Device(CreateD3DDevice(DXGIAdapter, FeatureLevel, DeviceFlags))
, m_ImmediateContext(ImmediateContextOf(this->m_Device)) // PENG voll in die Fresse!
{
return;
}
}; // class CGPU