Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

51

09.01.2014, 14:34

Naja, das Problem gibt es doch generell in C++ mit Operatorüberladung.
Zum Beispiel...

C-/C++-Quelltext

1
2
3
4
5
static void* operator new(const std::size_t Size)
{
    std::wcout << L"Ätsch!";
    return nullptr;
}

... ist überhaupt kein Problem und hat auch globale Auswirkungen.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

52

09.01.2014, 14:39

Das ist aber auch der einzige Ausnahmefall, wo das erlaubt ist... ;)

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

53

09.01.2014, 14:45

OK: Danke für die Infos.

Jedoch kann ich auf Remainder() nicht zugreifen.

Math.h ist eigebunden.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

54

09.01.2014, 14:47

Möglicherweise hast du den Header nicht eingebunden oder die Funktion falsch geschrieben. (Nämlich groß, wie hier im Forum)
Was ist den die Fehlermeldung?

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

55

09.01.2014, 14:53

Der Bezeichner remainder ist nicht definiert.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

56

09.01.2014, 14:58

Dann hast du "cmath" nicht eingebunden.
Hast du den Namensraum "std" angegeben?
Ansonsten fällt jetzt langsam nichts mehr ein, was wahrscheinlich ist.
Zeig mal den Code.

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

57

09.01.2014, 15:09

OK. hier ist er.

Ich habe nur den Kopf der Datei und die Funktion die remainder benutzt gepostet.

C-/C++-Quelltext

1
2
3
4
5
6
#include "main.h"
#include <cmath>
#include <math.h>


using namespace std;




C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
tbResult CTutorial::Render(float fTime)
{
    //tbVector3 v_MeshPos;


    //v_MeshPos = gp_Main->mp_Game->mp_Player->GetPosition();

    remainderf();
    

    //tbMatrix m_Scl    = tbMatrixScaling(tbVector3(1.0f,1.0f,1.0f));
    ////tbMatrix m_Rot  = tbMatrixRotation(tbVector3(0.0f,0.0f,0.0f));
    //tbMatrix m_Trans  = tbMatrixTranslation(tbVector3(gp_Main->mp_Game->mp_Player->GetPosition().x,0.0f, gp_Main->mp_Game->mp_Player->GetPosition().z));
    //tbMatrix m_World  =  m_Trans;     // Weltmatrix erstellen


    //tbDirect3D &D3D = tbDirect3D::Instance();

    //D3D->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, tbColor(70.0f, 0.5f, 70.0f),1.0f, 0);

    ////Szene Beginnt;
    //D3D->BeginScene();

    //gp_Main->mp_Game->SetProjection(fTime);

    //gp_Main->mp_Game->mp_Part1->SkyBox->Render(gp_Main->mp_Game->mp_Player->m_vPosition + tbVector3(0.0f, 10.0f, 0.0f));

    //if(pb_Button[TB_KEY_SPACE])   D3D.SetRS(D3DRS_FILLMODE,D3DFILL_WIREFRAME);

    //gp_Main->mp_Game->SetProjection(fTime);

    //v_Velocity = -(gp_Main->mp_Game->mp_Player->GetPosition() / 500);
    //
    //Terain->GetEffects()->pEffect->GetEffect()->SetMatrix("View",(D3DXMATRIX*)&gp_Main->mp_Game->m_Camera);
    //Terain->GetEffects()->pEffect->GetEffect()->SetMatrix("Prj",(D3DXMATRIX*)&gp_Main->mp_Game->m_Projection);
    //Terain->GetEffects()->pEffect->GetEffect()->SetMatrix("World",(D3DXMATRIX*)&m_World);
    //Terain->GetEffects()->pEffect->GetEffect()->SetVector("Cam_Vector",(D3DXVECTOR4*)&v_Velocity);
    //Terain->Render();


    //D3D.SetRS(D3DRS_FILLMODE, D3DFILL_SOLID);

    //D3D->EndScene();

    //return TB_OK;
}


Komisch. Auf cosf() kann ich zugreifen. cosf() ist doch auch in math.h definiert. oder?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

58

09.01.2014, 15:17

math.h ist ein Header aus der C-Standardbibliothek, der in C++ nur aus Gründen der Abwärtskompatibilität existiert. In C++ verwendet man stattdessen cmath...

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

59

09.01.2014, 15:20

Es klappt trotzdem leider nicht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

60

09.01.2014, 15:21

Was klappt nicht? #include <cmath> und die Funktion heißt std::remainder.

Werbeanzeige