Programación multiplataforma

La programación multiplataforma tiene sus cosas. Vean por ejemplo el siguiente código:

class GuiSystem {
public:

protected:

    CEGUI::FrameWindow *talk[3];
};

GuiSystem::GuiSystem()
{
    //get some elements for auxiliar functions
    talk[0] = (CEGUI::FrameWindow*)getWindow("talk1");
    talk[1] = (CEGUI::FrameWindow*)getWindow("talk2");
    talk[2] = (CEGUI::FrameWindow*)getWindow("talk3");
}

void GuiSystem::addTalk(string msgtext)
{  
    talk[0]->setText(msgtext);
}

Lo anterior funciona correctamente en Linux. En cambio, en Windows, compilado con gcc 3, la función addTalk explota sin ningún mensaje. La solución fue mover la inicialización de los elementos a la función.

Comentarios