Yo se como hacerlo en Visual C++, pero el código resultante no está garantizado que pueda ser portable. De todas formas, consulta la página nehe.gamedev.net. Una forma fácil es creando texturas para cada caracter y representándolas en pantalla, asi si que se crea un código portable, pero es un proceso muy tedioso.