Aktuelle Zeit: 12.05.2025, 23:24

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Compile Problem...
BeitragVerfasst: 09.08.2009, 12:14 
Offline

Registriert: 09.08.2009, 12:07
Beiträge: 4
Hallo zusammen,

ich bin wirklich recht neu in der C++ Gegend und habe vorher eigentlich nur mit Scriptsprachen gearbeitet.
Dennoch bin ich auf die Irrlicht Engine gestoßen und diese hat mich in Ihren Bann gezogen.

Es ist viel möglich wenn man es kann... :lol:

Ich habe im WWW eine Depth of Field Demo gefunden und mir diese angeschaut...
Ich möchte diese gern verstehen und daran rumspielen.

Doch leider will mein Compiler den Source nie erfolgreich kompelieren.
Ich nutze MS Visual C++ 2008 Express Edtion.

Natürlich habe ich auch schon die ganzen Includes vorgenommen.
Doch der Compile wird mit diesem Fehler meist beendet.

Code:
   

Kompilieren...
shadermaterial.cpp
shadergroup.cpp
c:\users\....\desktop\depthoffield\shadergroup.cpp(42) : error C2248: "irr::core::CMatrix4::M": Kein Zugriff auf private Member, dessen Deklaration in der irr::core::CMatrix4-Klasse erfolgte.
        with
        [
            T=irr::f32
        ]
        c:\Irrlicht\include\matrix4.h(320): Siehe Deklaration von 'irr::core::CMatrix4::M'
        with
        [
            T=irr::f32
        ]
c:\users\....\desktop\depthoffield\shadergroup.cpp(46) : error C2248: "irr::core::CMatrix4::M": Kein Zugriff auf private Member, dessen Deklaration in der irr::core::CMatrix4-Klasse erfolgte.
        with
        [
            T=irr::f32
        ]
        c:\Irrlicht\include\matrix4.h(320): Siehe Deklaration von 'irr::core::CMatrix4::M'
        with
        [
            T=irr::f32
        ]
main.cpp
c:\users\....\desktop\depthoffield\main.cpp(101) : error C2259: 'MyEventReceiver': Instanz von abstrakter Klasse kann nicht erstellt werden
        aufgrund folgender Member:
        "bool irr::IEventReceiver::OnEvent(const irr::SEvent &)": ist abstrakt
        c:\Irrlicht\include\ieventreceiver.h(351): Siehe Deklaration von 'irr::IEventReceiver::OnEvent'
Code wird generiert...



Könnt ihr mir sagen woran das liegt, weil ich leider keine Ahnung habe was mir MS VC++ damit sagen will.

Ich danke euch schon im vorraus...

Gruß Darius


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Compile Problem...
BeitragVerfasst: 14.08.2009, 11:47 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Naja sieht so aus als würde da in dem Code auf eben private Member der Matrix-Klasse zugegriffen was nicht geht.

Vermutlich ist das Ding mit bzw. für eine ältere Version von Irrlicht gebaut worden. Wo gibts denn diesen Code?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Compile Problem...
BeitragVerfasst: 15.08.2009, 18:52 
Offline

Registriert: 09.08.2009, 12:07
Beiträge: 4
Zitat:
Naja sieht so aus als würde da in dem Code auf eben private Member der Matrix-Klasse zugegriffen was nicht geht.

Vermutlich ist das Ding mit bzw. für eine ältere Version von Irrlicht gebaut worden. Wo gibts denn diesen Code?


Hi,

den Code bzw. diese Demo gibt es hier...

>>Download

Wenn ich das recht mitbekommen habe basiert der Code auf der Irrlicht Engine 1.2...
Wobei herrscht eine so starke inkompatibilität zu den älteren Versionen?

Gruß Darius


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Compile Problem...
BeitragVerfasst: 15.08.2009, 22:15 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Nein eigentlich nicht, aber von Version 1.3 zu 1.4 oder von 1.4 zu 1.5 haben die was geändert was dafür gesorgt hat das man seinen Code anpassen musste.

EDIT:

Ist aber relativ simpel zu ändern

In shadergroup.cpp in Zeile 42 + 46 aus
Code:
services->setVertexShaderConstant("gl_ModelViewProjectionMatrix", &worldViewProj.M[0], 16);
services->setVertexShaderConstant("gl_ModelViewMatrix", &worldView.M[0], 16);

das machen (also das .M) entfernen.
Code:
services->setVertexShaderConstant("gl_ModelViewProjectionMatrix", &worldViewProj[0], 16);
services->setVertexShaderConstant("gl_ModelViewMatrix", &worldView[0], 16);


und in main.cpp
in Zeile 23 aus
Code:
virtual bool OnEvent(SEvent event)

das machen
Code:
virtual bool OnEvent(const SEvent& event)


Dann lässt es sich übersetzen. Musste dann noch das Arbeitsverzeichnis zum Debuggen richtig setzen und dann funzt das Beispiel.

Du kannst Dir auch einfach Irrlicht 1.2 runterlade um das auszuprobieren.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Compile Problem...
BeitragVerfasst: 16.08.2009, 10:42 
Offline

Registriert: 09.08.2009, 12:07
Beiträge: 4
Wow Danke,

die fehler sind damit schonmal nicht mehr vorhanden.
Doch wie richtet man da diesen Debugger richtig ein?

Bekomme nämlich immer diese Fehlermeldung beim Debuggen:

Code:
---------------------------
DepthOfField_d.exe - Einsprungpunkt nicht gefunden
---------------------------
Der Prozedureinsprungpunkt "?createDevice@irr@@YAPAVIrrlichtDevice@1@W4E_DRIVER_TYPE@video@1@ABV?$dimension2d@H@core@1@I_N22PAVIEventReceiver@1@@Z" wurde in der DLL "Irrlicht.dll" nicht gefunden.
---------------------------
OK   
---------------------------


Habe auch schon das .pdb File manuell in den Bin Ordner kopiert wo er die _d.exe erstellt.
Hilft auch nicht.

Eine Aktuelle Irrlicht.dll liegt auch in dem Ordner...


Danke für deine Hilfe


Gruß Darius


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Compile Problem...
BeitragVerfasst: 18.08.2009, 08:30 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Die *.pdb ist egal, die Irrlicht.dll ist entscheidend.
Wenn Du es mit der irrlicht.lib aus dem aktuellen sdk linkst, dann musst Du auch die Irrlicht.dll aus dem aktuellen sdk verwenden.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 18 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de