Irrlicht - błąd windowsa
Ostatnio zmodyfikowano 2012-07-28 13:23
ShadowGames Temat założony przez niniejszego użytkownika |
Irrlicht - błąd windowsa » 2012-07-28 09:44:08 Witam. W końcu po paro godzinnej pracy poradziłem sobie z linkowaniem Irrlichta w Code:Block. Wszystko kompiluje się bezbłędnie i konsola odpala się normalnie ale gdy załaduje się okienko irrlichta wyrzuca błąd systemu windows(ten z wyslij raport lub nie wysyłaj). Wersja irrlichta 1.7.3/1.6.1 mieszane gdyż w oficjalnej paczce 1.7.3 brakuje niektórych plików. Mój sprzęt: Intel Pentium M 2,0Ghz Ati Mobility Radeon x300 64/128mb 1,5GB ramu DDR2 Windows XP PRO SP3 A o to kod programu: #include <conio.h> #include <irrlicht.h> #include <iostream> #ifdef _IRR_WINDOWS_ #pragma comment(lib, "Irrlicht.lib") #endif using namespace irr; using namespace core; using namespace scene; using namespace video; using namespace std; int user_set_video = 0; E_DRIVER_TYPE DriverType = EDT_DIRECT3D9;
int launcher() { cout << "Launcher Beta v0.1" << endl; cout << "Tryby grafiki" << endl; cout << "1. OpenGL - ZALECANY" << endl; cout << "2. Directx9 - ZALECANY" << endl; cout << "2. Directx8 - GDYBY DX9 NIE DZIALAL" << endl; cout << "4. Software - NIE ZALECANY" << endl; cin >> user_set_video; if( user_set_video == 1 ) { DriverType = EDT_OPENGL; cout << "Wybrales tryb OpenGL" << endl; } else if( user_set_video == 2 ) { DriverType = EDT_DIRECT3D9; cout << "Wybrales tryb Directx9" << endl; } else if( user_set_video == 3 ) { DriverType = EDT_DIRECT3D8; cout << "Wybrales tryb Directx" << endl; } else if( user_set_video == 4 ) { DriverType = EDT_SOFTWARE; cout << "Wybrales tryb SOFTWARE" << endl; } cout << "Kliknij dowolny klawisz aby kontynuowac..." << endl; getch(); return DriverType; }
int videoset() { IrrlichtDevice * device_mode = createDevice( DriverType, core::dimension2d < u32 >( 640, 480 ), 32, false, true, false, 0 ); device_mode->setWindowCaption( L"Hello World! - Irrlicht Engine Demo" ); IVideoDriver * video = device_mode->getVideoDriver(); ISceneManager * s_menage = device_mode->getSceneManager(); ICameraSceneNode * cam = s_menage->addCameraSceneNodeFPS(); while( device_mode->run() ) { device_mode->getCursorControl()->setVisible( false ); cam->setPosition( vector3df( 0, 0, - 100 ) ); IAnimatedMesh * pudlo = s_menage->getMesh( "models/test1.obj" ); IAnimatedMeshSceneNode * pud = s_menage->addAnimatedMeshSceneNode( pudlo ); pud->setScale( vector3df( - 300, - 300, - 300 ) ); pud->setPosition( vector3df( 0, 0, 900 ) ); pud->setMaterialFlag( EMF_LIGHTING, false ); pud->setMaterialTexture( 0, video->getTexture( "texture/test1.png" ) ); ; } device_mode->drop(); return 0; }
int main() { launcher(); videoset(); }
Nie mam pojęcia co robię źle. W c++ piszę już rok a irrlichta używam dopiero jeden dzień. Teraz wyjeżdżam i wrócę popołudniu więc jakby czegoś brakowało do określenia gdzie jest błąd, dopisze po powrocie. |
|
SeaMonster131 |
» 2012-07-28 12:19:04 Sprawdź debuggerem w jakim miejscu występuje błąd. |
|
ShadowGames Temat założony przez niniejszego użytkownika |
» 2012-07-28 12:56:16 Program received signal SIGSEGV, Segmentation fault. In irr::core::string<char, irr::core::irrAllocator<char> >::operator= () (C:\WINDOWS\system32\Irrlicht.dll) At C:\Documents and Settings\Właściciel\Pulpit\Testowa gra irrlich\ShadowGame\main.cpp:22 |
|
Gabes |
» 2012-07-28 13:18:19 Taki składak irrlichta za chiny nie będzie działać. W dystrybucji 1.7.3 masz tylko pliki źródłowe które musisz sam skompilować (source/Irrlicht/Irrlicht-gcc.cbp)trzeba dokonać kilku zmian w kodzie i w projekcie aby utworzyć dll i liby pod dx9. Zrobiłem kiedyś małego devpaka z irrlicht 1.7.2 do devcpp-4.9.9.2 możesz sobie go wypakować programem 7zip i użyć do Code::Blocks (działa pod dx9 i opengl nie działa pod dx8 dll-ka pobrana z forum irrlichta) edycja http://www.wrzuc.to/81jYAZ.wtciekawy link http://irrlicht.sourceforge.net/forum/viewtopic.php?f=5 &t=5813&start=120 |
|
ShadowGames Temat założony przez niniejszego użytkownika |
» 2012-07-28 13:23:34 ok dzieki już sprawdzam ;D
|
|
« 1 » |