Code blocks, problem z plikiem .exe

0

Witam, po kompilacji programu tworzy się plik .exe, ale niestety gdy go spróbuję włączyć pojawia się konsola a następnie bardzo szybko znika.

Program ten jest napisany w silniku graficznym irrlicht, programy czysto konsolowe normalnie można włączyć.

Będę bardzo wdzięczny za pomoc ;].

0

jesteś pewien, że z Twojego kodu nie wynika to, że dokładnie to ma się dziać? jest jeszcze opcja, że silnik napotkał jakiś problem i zamiast erroru wygenerował gdzies plik .log

0

Raczej nie, ponieważ przez kompilator da się odpalić

0

Spróbuj uruchomić go z konsoli (ctrl + r ew start/uruchom i tam cmd), pewnie wyrzuci do niej jakiś komunikat błędu (skoro sam otworzysz konsolę to się nie zamknie).

0

konsola się nie wyłącza ale nic się nie pokazuję, tzn. czeka na następne polecenie ;/

0

Daj w ostatniej linijce przed return cin.get();

0

Co to ma niby dać? ;o

Program wygląda tak - najpierw pojawia konsola z driverChoice, a potem pojawia się okno z wyrenderowanym obrazem.
Ale niestety nie da się go otworzyć przez .exe

Teraz wywaliłem Wybór sterowników, od razu powinno pojawić się okno, ale niestety jest to samo, konsola pojawia się i prawie od razu znika.

0

Po prostu na końcu swojego programu dopisz system("pause");

0

To jest program graficzny, nie konsolowy!!!

0

Właśnie, jeżeli Irrlicht to powinna być pętla aplikacji, przez którą nie ma prawa aplikacja się zamknąć. Hmm, pokaż kod o ile możesz niedługi.

0

Hmm...kod nad którym teraz pracuję nie podam bo ma ~600 linijek.
Ale podam inny, z którym mam też ten problem:

#include <irrlicht.h>


using namespace irr;


using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;


int main(int argc, char** argv)
{


    IrrlichtDevice *device =
        createDevice(EDT_SOFTWARE, dimension2d<u32>(640, 480), 16,
            false, false, false, 0);


    device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");


    IVideoDriver* driver = device->getVideoDriver();
    ISceneManager* smgr = device->getSceneManager();
    IGUIEnvironment* guienv = device->getGUIEnvironment();


    guienv->addStaticText(L"Hello World! This is the Irrlicht Software renderer!",
        rect<int>(10,10,200,22), true);


    IAnimatedMesh* mesh = smgr->getMesh("../../media/sydney.md2");
    IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );


    if (node)
    {
        node->setMaterialFlag(EMF_LIGHTING, false);
        node->setFrameLoop(0, 310);
        node->setMaterialTexture( 0, driver->getTexture("../../media/sydney.bmp") );
    }



    smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));


    while(device->run())
    {

        driver->beginScene(true, true, SColor(0,200,200,200));

        smgr->drawAll();
        guienv->drawAll();

        driver->endScene();
    }

    device->drop();

    return 0;
}
0

Hmm, czyli przy standardowym kodzie też się tak dzieje, dziwne. Gdzie tak się dzieje w Code::Blocks, czy samodzielnie jak odpalasz exe?

0

Tylko jak otwieram .exe, w code block kod normalnie odpala.
Gdyby nie to że chciałbym wysłać to dla kogoś, to bym nie robił takiego problemu. ;/

Code block mam świeżo zainstalowany, więc raczej nic nie poprzestawiałem w ustawieniach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1