如何通过给定参考(DirectX / C ++ Prgoramming)发送D3D设备
|
H1。
我正在尝试将代码分成不同的.cpp和.h文件,以使它们查找,查看和理解起来更加容易。这是我现在要执行的操作:我有一个Meshes.cpp,这是我的主要.cpp源文件。在Render函数(Render())中,我必须调用一个名为SetupMatrices的函数:
这是我的“ d3dGeneral.cpp”文件:
// Begining of the \"d3dGeneral.cpp\"
#include \"DXUT.h\"
VOID SetupMatrices( LPDIRECT3DDEVICE9 *PDev )
{
D3DXMATRIXA16 matProj;
D3DXMatrixPerspectiveFovLH( &matProj,
D3DX_PI / 4,
1.777777777777778f,
1.0f,
1000.0f );
PDev->SetTransform( D3DTS_PROJECTION, &matProj ); // The problem is here......
}
//Enging of the \"d3dGeneral.cpp\"
这是我的\“ Meshes.cpp \”文件:(哪个是主cpp文件)
// Begining of the \"Meshes.cpp\" file.
#include \"DXUT.h\"
#include \"XMesh.h\"
#include \"Camera.h\"
#include \"d3dGeneral.cpp\"
...
...
//Usualy SetupMatrices is found here.
...
...
VOID Render()
{
SetupMatrices( &g_pd3dDevice );
...
...
...
}
INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, int nCmdShow)
{
...
...
...
Render();
...
...
...
}
// End of the \"Meshes.cpp\" file
名为DXUT.h的头文件包含其他常规包含。
所以,当我这样做时,我得到一个错误:
错误2错误C2227:\'-> SetTransform \'的左侧必须指向类/结构/联合/通用类型c:\\ users \\ catt \\ desktop \\ deneme \\ d3dgeneral.cpp 74 MeshClass
我知道这是什么意思,但我找不到如何避免的方法。看起来我的指针有问题。我也尝试像这样使用PDev:
*PDev->SetTransform( D3DTS_PROJECTION, &matProj ); // ???
我知道我不必在该函数中使用带有引用的d3dDevice,但是我还有一个Cleanup函数。我认为我需要为此提起诉讼,因为它必须清除真实设备本身,而不是其副本8)。我希望我能正确地解释自己。如果您能帮助我,那将是非常糟糕的。感谢您抽出宝贵的时间...
没有找到相关结果
已邀请:
2 个回复
纤洞需匪
完趣镐
已经是一个指针。您不需要指向它的指针。取值
。 当然,我个人更喜欢取ѭ6,因为它更清晰,此外,我喜欢将原始指针存储在智能指针中。