H1. Ich versuche, meine Codes in verschiedene Bereiche zu unterteilen. .cpp y .h Dateien, damit sie leichter zu finden, zu sehen und zu verstehen sind. Hier ist, was ich jetzt zu tun versuche: Ich habe eine Meshes.cpp das ist mein Haupt .cpp Quelldatei. In der Rendering Funktion ( Render() ) Ich muss eine Funktion aufrufen, die den Namen SetupMatrizen :
Dies ist mein " d3dGeneral.cpp Datei":
// 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"
Und das ist mein " Meshes.cpp "Datei: (Die Haupt-cpp-Datei)
// 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
Die Header-Datei mit dem Namen DXUT.h enthält weitere allgemeine Angaben. Wenn ich dies tue, erhalte ich einen Fehler:
Fehler 2 Fehler C2227: links von '->SetTransform' muss auf class/struct/union/generic type c zeigen: \users\catt\desktop\deneme\d3dgeneral.cpp 74 MeshClass
Ich weiß, was das bedeutet, aber ich kann nicht herausfinden, wie ich es vermeiden kann. Es sieht so aus, als ob ich ein Problem mit Zeigern habe. Außerdem habe ich versucht, PDev so zu verwenden:
*PDev->SetTransform( D3DTS_PROJECTION, &matProj ); // ???
Ich weiß, ich muss nicht d3dDevice mit Referenz in dieser Funktion verwenden, aber ich habe auch eine Funktion Aufräumen . Ich denke, ich muss eine Referenz dafür angeben, denn es muss das echte Gerät selbst reinigen, nicht die Kopie davon 8). Ich hoffe ich habe mich richtig erklärt. Wenn Sie mir helfen können, wäre das großartig. Danke, dass Sie sich die Zeit genommen haben...