0
Ошибка генерируется на второй линии:ошибка C2275: незаконное использование такого типа, как выражение
HRESULT Direct3DDevice9Wrapper::GetLight(DWORD Index, D3DLIGHT9 *)
{
return Direct3DDevice9->GetLight(Index, D3DLIGHT9);
}
D3DLIGHT9 deffinition:
typedef struct _D3DLIGHT9
{
D3DLIGHTTYPE Type; /* Type of light source */
D3DCOLORVALUE Diffuse; /* Diffuse color of light */
D3DCOLORVALUE Specular; /* Specular color of light */
D3DCOLORVALUE Ambient; /* Ambient color of light */
D3DVECTOR Position; /* Position in world space */
D3DVECTOR Direction; /* Direction in world space */
float Range; /* Cutoff range */
float Falloff; /* Falloff */
float Attenuation0; /* Constant attenuation */
float Attenuation1; /* Linear attenuation */
float Attenuation2; /* Quadratic attenuation */
float Theta; /* Inner angle of spotlight cone */
float Phi; /* Outer angle of spotlight cone */
} D3DLIGHT9;
Я работаю в VC++, Visual Studio 2012. Там были похожими сообщениями о проблеме объявления переменных для c89, но я не могу заставить этот код работать.
'Direct3DDevice9' - это тип. Вы используете его, как если бы он был переменной. То же для 'D3DLIGHT9'. Вы, кажется, знаете достаточно, чтобы правильно использовать «DWORD Index» - вы написали «GetLight (Index)», а не «GetLight (DWORD)». Так почему вы смущены о 'D3DLIGHT9'? –