J'ai commencer récemment à m'intéresser à la programmation à partir d'un moteur graphique et mon choix s'est porté sur le moteur opensource Ogre3D. J'ai donc suivi dans un premier temps ce tutorial, j'arrive à compiler la première partie !
Mais lors de l'exécution je reçois le message d'erreur suivant :
Code :
- Exception non gérée à 0x7c812aeb dans FirstApplyOgre.exe*: Exception Microsoft C++*: std::bad_alloc à l'emplacement mémoire 0x0012f334
|
C'est un problème d'allocation mémoire mais j'ai aucune idée de comment le résoudre !
Voici mon code :
Classe Application.h
Code :
- #include <Ogre.h>
- class Application
- {
- public :
- Application() ;
- ~Application() ;
- void Run();
- void Start();
- void Exit();
- Ogre ::Root* pRoot ;
- Ogre ::SceneManager* pSceneManager ;
- Ogre ::RenderWindow* pRenderWindow;
- Ogre ::Viewport* pViewport ;
- Ogre ::Camera* pCamera ;
- } ;
|
Source Application.cpp
Code :
- #include "Application.h"
- Application::Application()
- {
- }
- void Application::Run()
- {
- pRoot->startRendering();
- }
- void Application ::Start()
- {
- pRoot = new Ogre ::Root() ;
- pRenderWindow = pRoot->initialise(true,"Ma premiere application Ogre" );
- pSceneManager = pRoot->createSceneManager(Ogre::ST_GENERIC, "MonGestionnaireDeScene" );
- pCamera = pSceneManager->createCamera("MaCamera" );
- pViewport = pRenderWindow->addViewport(pCamera);
- }
- Application::~Application()
- {
- }
|
Source Main.cpp
Code :
- #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
- #define WIN32_LEAN_AND_MEAN
- #include "windows.h"
- #include "Application.h"
- INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
- #else
- int main(int argc, char **argv)
- #endif
- {
- try {
- Application MonApplication ;
- MonApplication.Start ();
- MonApplication.Run() ;
- MonApplication.Exit();
- } catch( Exception &e ) {
- #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
- MessageBox( NULL, e.what(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
- #else
- fprintf(stderr, "An exception has occurred: %s\n",
- e.what());
- #endif
- }
- return 0;
- }
|
Je pense que le problème se situe à ce niveau :
Code :
- pRoot = new Ogre ::Root() ;
|
Quelqu'un peut m'aider?
merci !
Message édité par Qhrim le 06-02-2009 à 09:35:43