Abend zusammen.
Ich arbeite mich gerade durch ein DirectX11 Buch für Anfänger und bin dabei leider auf folgendes Problem gestoßen:
Im Buch wird beschrieben, dass man bestimmte Objekte(
ID3D11Device,
ID3D11DeviceContext usw.) zu einer Klasse zusammen fassen soll, um diese dann bequemer zu steuern.
Als ich nun gerade dabei war, einen Vertexbuffer mit unten stehendem Code zu erzeugen, unterringelte mir Visual C++ meine Membervariable namens
d3dDevice_ und bemängelte, dass er auf diese Membervariable keinen Zugriff hätte. Doch
d3dDevice_ ist als protected deklariert, weswegen ich die Fehlermeldung nicht nachvollziehen kann.
Betreffende Codezeile:
HRESULT result = demo->d3dDevice_->CreateBuffer(&vertexDesc, &resourceData, &vertexBuffer);
Der Compiler meint folgendes dazu:
main.cpp(83): error C2371: 'result': Neudefinition; unterschiedliche Basistypen
main.cpp(54): Siehe Deklaration von 'result'
main.cpp(83): error C2248: "DX11DemoBase::d3dDevice_": Kein Zugriff auf protected Member, dessen Deklaration in der DX11DemoBase-Klasse erfolgte.
dx11demobase.h(33): Siehe Deklaration von 'DX11DemoBase::d3dDevice_'
dx11demobase.h(11): Siehe Deklaration von 'DX11DemoBase'
Hier noch fix die Dateien für besseren Überblick.
MfG XoR