Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - ethernet

#61
Compos / [compo Stratos 48h] Como Se Hizo
29 de Mayo de 2005, 09:18:31 PM
 El viernes noche lei el post de trancos indicando el objetivo, aunque no pude empezar a programar hasta el sábado por la tarde. Cogi la base emejorada del juego anterior y me puse a pensar en un juego. Ya que tenía la base del terreno por ahí generada, opté por crear un juego sobre un terreno. Lo siguiente fue añadir el movimiento de la cámara, lo cual me llevó un parde bugs (los típicos de grados->radianes). Pasé a implementar los enemigos y las balas, que no son complejos (un array de estructuras) y sus colisiones. El enemigo es una esfera achatada con un satétile, o sea, dos gluQuadric.. XD (eso es todo lo que sé modelar).

Hasta ahí llegué el sábado (me acosté a las 2:00 o así)

el domingo me puse con las texturas, el cielo, las balas, el suelo (incluído el cálculo de la iluminzación, que tiene eh?), con  la intro y los menús. Todas las texturas están hechas con un fakeperlin que cree en días pasados, así como el terreno, que es una mezcla entre perlins y senos.

Una vez lo tenía más o menos terminado (una hora antes de la deadline) metí el sonido de la bala (el único), que es un sin modulado por una envolvente exponencial que a su vez varía la frecuencia de forma lineal, de 400 a 50 hz.

Personalmente los bugs que más me han jodido han sido uno de un incremento de una variable, otro de un fallo en un índice y por último una falta de ortorafía que puse en el guión de la intro XDD.

Ha estado muy bien, no he visto aún todas las prods, pero las que he visto tienen un nivel buenísimo, enhorabuena a todos. Me faltan algunos (ses, zaelsius...) espero que presenten aunque sea post-deadline.

saludos
#62
Programación gráfica / Sky Plane
08 de Mayo de 2005, 11:48:06 AM
 Hola, he visto en algunos sitios que usan para el cielo un plano con una textura (bueno, a veces varios planos para simular varios planos de nubes). He estado intentando realizarlo de la siguiente forma:



void SkyBox(float x, float y)
{
glBindTexture(GL_TEXTURE_2D,TEX_cielo);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

glTranslatef(0,0,600);
glScalef(15000,15000,15000);
quad();
glDisable(GL_BLEND);


}


Creo que lo único que se puede decir más es que la niebla está activada.

El resultado no es malo, pero me gustaría saber cómo lo haceis vosotros. Había pensando en hacer un cielo con una esfera con mucho radio y desplazada a las z negativas de forma que quedara el cielo, visto desde (0,0,0), un poco curvado, de esa forma consigo que no se noten las transiciones de cielo-horizonte.

un saludo :**
#63
General / Comentarios Sobre Glest En Otras Webs
11 de Abril de 2005, 11:07:39 AM
 Estaba mirando esta mañana el blog de un grupo de valladolid sobre linux y cual ha sido mi sorpresa que me he encontrado con la siguiente noticia:

http://aloriel.no-ip.org/index.php?option=post&ID=279

que además hacía referencia a esta otra:

http://rapisardi.org/index.php?p=70&more=1...1&pb=1#comments


Solo me queda decir que enhorabuena, de nuevo, a los creadores de glest, parece que ha calado :)
#64
General Grafistas / Texturas Modelado Y Blender
09 de Abril de 2005, 05:58:07 PM
 Quiero hacer lo siguiente: imaginaos un modelo hecho de cuadrados (en vez de triangulos), quiero aplicar a cada uno de los polis una textura diferente usando las UV del cuadrado original.

Es posible hacer eso en blender?

saludos
#65
 
   Interfaz para IDirect3DDevice



    zupervaca nos proporciona un código que tiene que ver con la optimización de las llamadas a los métodos que nos ofrece Directx9. Qué mejor que las palabras del autor para explicar en qué consiste la clase:

    Clase para no realizar tantas llamadas a los objetos COM de DirectX, al guardar en memoria de la aplicación el estado del device antes de realizar una llamada al objeto COM comprueba si le indicas un valor diferente al establecido ahorrándote la llamada al objeto COM y todos los cálculos que realicen las DirectX.

    Como complemento a este COTW estaría bien que se discutiera la necesidad o no de tener un sistema de este tipo para las sucesivas llamadas a DX a la luz de un pequeño benchmark, a ver si alguien se anima a hacerlo.

    El código lo podeis encontrar en la web de zupervaca en la siguiente URL:

    http://www.davidib.com/codigofuente/cpp/dibDevice.rar

    Código enviado por zupervaca



    [/list]
#66
Off-topic / Os Amo A Todos
14 de Febrero de 2005, 06:23:47 PM
 :P
PD: especialmente a marsy :**
#67
Off-topic / Potátiles
10 de Febrero de 2005, 08:40:39 PM
 Hola, últimamente he estado pensando en comprarme un portátil ya que necesito tener la mivilidad que no me da un equipo de sobremesa. Alguno de vosotros teneis experiencias con portátiles, caracterísitcas deseadas, tiendas a las que no se debe ir...

un saludo
#68
General / Abadía Del Crimen
07 de Enero de 2005, 04:35:09 PM
 El otro día en el último telediario del día, bueno, el primero del día, ese que dan a las 2 de la mañana en telecinco dieron un reportaje sobre la abadía del crimen. Comentaron qué fue el juego y hablaron del remake que llevan haciendo (que ya se ha comentado varias veces en el foro).

La verdad es que me resultó tan impactante como reconfortante.

Alguno más lo vio?

un saludo
#69
Off-topic / Reproductores De Mp3
29 de Diciembre de 2004, 09:09:34 PM
 Hola, quería regalar un reproductor de mp3 portatil y encuentro algunos decentillos con 256 Mb ampliables, batería incluída ( y cargador claro) , tamaño reducido por un precio asequible.
sabeis/teneis/conoceis/frecuentais/usais algún reproductor de mp3 que se asemeje al que he citado que esté bien?

un saludo y gracias
#70
General / Antena3 Y Videojuegos
02 de Octubre de 2004, 03:48:08 PM
 Hoy en el "telediario" de antena3 de amediodia han dado un pequeño reportaje de "cómo se programan videojuegos". Han salido imágenes de videojuegos mientras hablaban de que es una industria económicacmente muy potente. Además han hablado de que algunas facultades (ha aparecido la UCM) que imprtían cursos sobre cómo crear videjuegos y ha salido javier arévalo hablando del tema.

Quizás esta noche en las noticas vuelva aparecer.

No ha sido un gran repotaje pero es la primera vez que veo hablar en TV de videjuegos y no es para ponerlos a caldo (típico reportaje del niño de la katana y el FF XD)

saludos
#71
Código de la Semana / Js Debugger
29 de Septiembre de 2004, 02:19:43 PM
 
   JS Debugger  



    sés nos cuenta:

    Hartito de utilizar cosas del tipo alert(1) o alert("peta"), me hice un  
    objeto Javascript para poder evaluar expresiones y ejecutar cualquier
    comando Javascript sin tener que recurrir a la barra del explorador
    (javascript:blablabla...), lo que da más problemas que otra cosa, como que  
    te aparezca el resultado en la página y te desaparezca todo ^_^.

    La forma de utilizarlo es lo más sencillo del mundo. Solo hay que poner
    esta línea en la página HTML que se quiera poder depurar:

<script language="JavaScript" src="Debug.js"></script>

Para depurar la página solo hay que ejecutar el siquiente comando  

Javascript: Debug.open()


Normalmente pongo un botón en la página que ejecute ese comando, pero
basta con poner en la url:  javascript:Debug.open()
Aparecerá una ventana con dos cajas de texto. En la superior se escriben
expresiones Javascript y en la inferior (al pulsar ENTER) aparece el  resultado.
Si el resultado es un objeto, se nos permitirá navegar por sus  
propiedades cómodamente.


El  HTML de prueba es:


<html>
<head>

<title>Prueba</title>

<script language="JavaScript" src="Debug.js"></script>

<script language="JavaScript">
var unobjeto = new function() {
this.num = 123;

this.str = "abc";

this.obj = new function() {
 this.a = 1;
 this.b = 2;
}

this.fun = function( a, b )
{
 return a + b;
}
}
</script>

</head>


<body>
Hola<br>
</body>

</html>

Para testearlo hay que seguir los siguietes pasos:
 - Abrir con un navegador.
 - Escribir en la URL: javascript:Debug.open()
 - Pruebar a evaluar la expresión: unobjeto, document o cualquier comando Javascript


El código de debug.js es:


/**
* Clase de depuración de Javascript.
*/
var Debug = new function() {
this.win = null;

/**
 * Abre la ventana de depuración.
 *
 * @param width Ancho de la ventana (420 por def.).
 * @param height Alto de la ventana (600 por def.).
 */
this.open = function( width, height )
{
 // Comprobar que no esté abierta
 if( (this.win != null) && !this.win.closed ) {
  this.win.focus();
  return;
 }
 
 // Tamaño por defecto
 if( width == undefined ) width = 420;
 if( height == undefined ) height = 600;
 
 // Abrir la ventana
 this.win = window.open( "", "debugWindow", "resizable,width="+width+",height="+height );
 
 // Para escribir menos... y que el js ocupe menos
 var d = this.win.document;
 
 // Escribir el código de la ventana
 // Se utilizan dos eventos:
 // - window.onresize: Para redimensionar las cajas de texto
 // - onsubmit: Para evaluar la expresión escrita
 d.open();

 d.writeln( "<html>" );
  d.writeln( "<head>" );
   d.writeln( "<title>JSDebug: " + document.title + "</title>" );
   d.writeln( "<script>" );
   d.writeln( "window.onresize=function() { document.getElementById('ifrmOut').height = document.body.clientHeight - 60; }" );
   d.writeln( "</script>" );
  d.writeln( "</head>" );
 
  d.writeln( "<body>" );
   d.writeln( "<form name=frmDebug onsubmit='document.dbgObject.evaluate(this.cmd.value);return false;'>" );
    d.writeln( "<table id='tbl' width='100%'>" );
     d.writeln( "<tr>" );
      d.writeln( "<td height='1' width='1'>" );
       d.write( "Evaluate:" );
      d.writeln( "</td>" );
      d.writeln( "<td height='1' width='100%'>" );
       d.writeln( "<input type=text style='width:100%' name=cmd>" );
      d.writeln( "</td>" );
     d.writeln( "</tr>" );
     
     d.writeln( "<tr>" );
      d.writeln( "<td colspan='2'>" );
       d.writeln( "<iframe id='ifrmOut' name='ifrmOut' width='100%' height='"+(height-60)+"' frameborder='1' scrolling='yes'></iframe>" );
      d.writeln( "</td>" );
     d.writeln( "</tr>" );
     
    d.writeln( "</table>" );
   d.writeln( "</form>" );
  d.writeln( "</body>" );
 d.writeln( "</html>" );
 
 d.close();

 // Se guarda este objeto en la ventana creada
 this.win.document.dbgObject = this;
 
 // Se le da el foco
 this.win.document.frmDebug.cmd.focus();
}

/**
 * Cierra la ventana.
 */
this.close = function()
{
 if( this.win != null ) {
  this.win.close();
  this.win = null;
 }
}

/**
 * @private
 *
 * Como no he encontrado ninguna forma de obtener el padre de un objeto, lo intento obtener de la expresión escrita.
 * Parece algo cutre, pero funciona.
 */
this.getParentObject = function( s )
{
 var i = s.lastIndexOf( "." );
 return i != -1 ? s.substr( 0, i ) : undefined;
}

/**
 * Obtiene una cadena con el valor de una expresión.
 *
 * @param expr Expresión a evaluar.
 * @param expand Indica si se quieren obtener todas las propiedades o solo el valor de la expresión (true por def.).
 *
 * @return Cadena con el valor de la expresión.
 */
this.objectValue = function( expr, expand )
{
 // true por defecto
 expand = expand != false;

 // Aquí se irá creando el resultado
 var val = "";
 
 try {
  // Se obtiene la cadena del padre (para crear los posibles enlaces)
  var sParent = this.getParentObject( expr );
  // Función a llamar en los enlaces para ahorrar al escribir y espacio
  var sEv = "window.top.document.dbgObject.evaluate";
  // Se evalúa la expresión
  var obj = eval( expr );
 
  if( obj == undefined ) return undefined;
  if( obj == null ) return null;
 
  // Si se va a expandir y tiene padre, se crea el enlace
  if( expand && (sParent != undefined) ) {
   val += "<a href='javascript:"+sEv+"(\""+sParent+"\")'>[..]</a>";
  }
 
  // Obtener el valor según el tipo de objeto
  switch( typeof( obj ) ) {
   case "number":
   case "boolean":
    // Valor tal cual
    val += "<code>" + obj + "</code>";
    break;
   
   case "string":
    // Encerrarlo entre comillas
    val += "<code>\"" + obj + "\"</code>";
    break;
   
   case "function":
    if( expand ) {
     // Cuerpo de la función
     val += "[Function]<br>";
     val += "<pre>"+obj+"</pre>";
    } else {
     // Enlace a la función
     val += "<a href='javascript:"+sEv+"(\""+expr+"\")'>[Function]</a>";
    }
    break;
   
   case "object":
    {
     val += "[Object]<br>";
     if( expand ) {
      // Valor del objeto
      for( var v in obj ) {
       val += "<br>"+v+"=" + this.objectValue( expr+"."+v, false );
      }
     } else {
      // Enlace al objeto
      val = "<a href='javascript:"+sEv+"(\""+expr+"\")'>[Object]</a>";
     }
    }
    break;
  }
 } catch( e ) {
  val = "*** ERROR<br><br>" + e;
 }
 
 return val;
}

/**
 * @private
 *
 * Función que recoge el evento onsubmit.<br>
 * Evalúa la expresión y muestra el resultado en la caja de texto.
 *
 * @param expr Expresión a evaluar.
 */
this.evaluate = function( expr )
{
 this.win.document.frmDebug.cmd.value = expr;
 
 var d = this.win.frames["ifrmOut"].document;
 d.open();
 d.writeln( this.objectValue( expr ) );
 d.close();
}
}



Código enviado por sés

Notas del editor:
   - no he puesto ela sintaxis coloreada porque uso HTML para ello y al tener fragmentos de HTML de por medio hay problemas
   - intentaré poner el ZIP con el code y el HTML para descargar :)

[/list]
#73
General / Diseño De Niveles
18 de Julio de 2004, 05:37:28 PM
 Al grano: que programa/s usariais vosotros para modelar un nivel de un juego tipo mario64 ?

un saludo
#74
Código de la Semana / Packer - Python
07 de Julio de 2004, 11:35:54 AM
 
    Packer  



    Este código en python sirve para poder cargar y guardar objetos en disco comprimidos. A pesar de ser un codigo pequeño me ha resultado muy util en mi trabajo. Basta con pasarle el objeto y el fichero donde quieres guardarlo para salvar todo el objeto (gracias al serialize de python). A su vez hay una clase pak en la cual se puede incluir objetos y ficheros de forma que se pueden guardar ambos en el mismo paquete. A mi me ha resultado muy util para guardar resultados intermedios y configuraciones. Espero que os resulte util.

    un ejemplo de uso es:

import packer;
obj = ("hola",1234,open("fichero.txt").readlines());
packer.save(obj,"fichero.dat");





import pickle
import gzip


def save(object, filename, bin = 1):
       """Saves a compressed object to disk
       """
       file = gzip.GzipFile(filename, 'wb')
       file.write(pickle.dumps(object, bin))
       file.close()


def load(filename):
       """Loads a compressed object from disk
       """
       file = gzip.GzipFile(filename, 'rb')
       buffer = ""
       while 1:
               data = file.read()
               if data == "":
                       break
               buffer += data
       object = pickle.loads(buffer)
       file.close()
       return object


def compress(filename,so):

       file = open(filename, 'rb')
       o = gzip.GzipFile(so, 'wb')
       buffer = ""
       while 1:
               data = file.read()
               if data == "":
                       break
               o.write(data);
       file.close()
       o.close();


def decompress(f,so):

       o = open(so, 'wb')
       file = gzip.GzipFile(f, 'rb')
       buffer = ""
       while 1:
               data = file.read()
               if data == "":
                       break
               o.write(data);
       file.close()
       o.close()


class pak:

       def __init__(self,file):

               self.file = file;
               self.tosave = [];


       def loadpak(self,dir = "."):
               self.obj = {};
               obj = load(self.file);
               print obj
               for x in obj:
                       if(x[0] == "file"):
                               print "extracting ... %s"% dir +"\"+x[1];
                               f = open(dir+"\"+x[1],"w");
                               f.write(x[2]);
                               f.close();
                       else:
                               if(x[0]=="obj"):
                                       if(not self.obj.has_key(x[1])):
                                               self.obj[x[1]]= [x[2]];
                                       else:
                                               self.obj[x[1]].append(x[2]);
               return self.obj;


       def getobj(self):
               return self.obj



       def __end__(self):

               self.savepak();

       def savepak(self):
               save(self.tosave,self.file);

       def addfiles(self,l):
               for x in l:
                       self.addfile(x);

       def addfile(self,file):
               import string;
               i=string.rfind(file,"\");
               if(i<0):
                       _file = file;
               else:
                       _file = file[i+1:];
               print "inflating ... %s"%_file;
               self.tosave.append(("file",_file,open(file,"r").read()));
       def addobject(self,o,name="undef"):

               self.tosave.append(("obj",name,o));




if __name__ == '__main__':

       o = pak("tmp.pak");
       print        o.loadpak();



#75
Programación gráfica / Opengl, Luces Y Blend
06 de Marzo de 2004, 11:50:03 PM
tengo el siguiente codigo mas o menos

activo luz
activo textura 1
dibujo quad
activo blend (GL_ONE_MINUS_SRC_ALPHA,GL_SRC_ALPHA)
activo textura 2
dibujo quad con alpha = 0 en uno de los vertices


pues resulta q el primer cuadrado lo dibuja bien pero el blend no lme lo hace. Si desactivo la iluminacion se ve el segundo quad blendeado con el primero. Hay algo q se me escapa :(

saludos
#76
Off-topic / Autobuses
26 de Febrero de 2004, 09:23:21 PM
 El otro dia viajaba en autobus en primera fila y me di cuenta de que el conductor tenia en el volante una de las palaquitas que usamos los mortales para dar la intermitente y los limpias pero que la usaba cuando reducia velocidad. Estoy intrigado, alguno sabe para que vale esa palaquita ?

saludos
#77
Código de la Semana / Genericmanager - Ethernet
26 de Febrero de 2004, 09:16:37 PM
 
    GenericManager  



    En estos dias de examenes que, curiosamente, te apetece programar mas de lo normal he programado en  ratos libres este GenericManager. Lo cierto es que no añade nada nuevo y hace no mucho mas que la clase que publico Gunder en edevi ( http://209.50.244.56/edevi/nums/3/article....e.php?f=coc.php ) pero tiene cosas que pueden ser interesantes.

    En mi caso uso este manager en dos casos que pueden servir como ejemplos:


    typedef patterns::GenericManager<Texture,TextureLoader<GLTexture> > TextureManager;
    typedef patterns::GenericManager<Texture,TextureLoader<GLTexture> >::Item TextureItem;


    De esta forma se puede usar asi:


    TextureItem textureid = TextureManager::Instance()->GetItem("Textura.tga");

    (quizas ponga mi genericfactory algun dia y pegue el ejemplo de TextureLoader :)

    Otra forma de uso es la siguiente:


    class ShaderManager
    :public patterns::GenericManager<Shader,Shader,std::string,false,ShaderManager>
    {
    ...
    };


    de forma que al coger la instacia con el Metodo Instace retornara una instacia a ShaderManager (parece que no pero tiene su intringulis)


    Sin mas el codigo es el siguiente:

    namespace patterns
    {


    struct
    manager_null_type {};

    //con precache siepre hay una instacia de cada item, solo se borran al final
    template <class Type,class Super = Type,class Key = std::string, bool Create_if_not_exists = true,class Manager = manager_null_type >
    class
    GenericManager
    {


        typedef
     GenericManager<Type,Super,Key,Create_if_not_exists,Manager> ManagerType;
        //hack para evitar recursividad en el template
            template <class T>
            struct
    manager_traits
            {

                typedef
    T manager ;
            };

            template
    <>
            struct
    manager_traits<manager_null_type>
            {

                  typedef
    GenericManager<Type,Super,Key,Create_if_not_exists,manager_null_type> manager;
            };

         //fin hack
        public:
            typedef
    Type ItemBase;
           class
    Item
           {

                friend
    ManagerType;
              Type *p;
              GenericManager *parent;
              const
    Key *__key;
              int
    *__count;
          
              Item(const Key &s,GenericManager *p,Type *_p,int *c):
                   __key(&s),
                   parent(p),
                   __count(c),
                   p(_p)
                   {}

            public
    :
                 /*explicit*/
    Item(const Item &i = NullItem()):
                __key(i.__key),
                 parent(i.parent),
                __count(i.__count),
                
                p(i.p)
                {

                   add_ptr();
                }

             Item& operator=(const Item& other)
             {

                   if
    (&other == this) return *this;
                release_ptr();
                __count = other.__count;
                p = other.p;
                parent = other.parent;
                   __key = other.__key;
                add_ptr();
                return
    *this;
             }

             
             void
    release_ptr()
             {

                if
    (__count &&!--(*__count)) parent->ReleaseItem(this);
             }

               void
    add_ptr()
               {

                   if
    (__count) ++(*__count);
               }

               void
    __debug_info()
               {

                   debuglog <<  "key: " << *__key << endl;
                   debuglog <<  "count: " << *__count << endl;

               }


           public
    :
              ~
    Item()
              {

                 release_ptr();

              }

              operator
    bool()
              {

                 return
    p!=0;
              }

              Type *operator->()
              {

                 return
    p;
              }

              static
    Item NullItem()
              {

                   static
    Item nullitem("",0,0,0);
                return
    nullitem;
              }

                friend
    bool operator==(const Item &i,const Item &o)
                {

                    if
    (i.p == o.p) return true;
                    else return
    false;
                }

                friend
    bool operator!=(const Item &i,const Item &o)
                {

                    if
    (i.p != o.p) return true;
                    else return
    false;
                }
           };

          

       private
    :
           struct
    TypeCount
           {

              TypeCount(Type *_p):
                p(_p),count(1){}
              Type *p;
              int
    count;
           };

           typedef
    std::map<Key,TypeCount*> TypeMap;
           TypeMap Map;
          
        protected
    :
           GenericManager()
           {}

          
        public
    :
          
           ~
    GenericManager()
           {

              TypeMap::iterator i = Map.begin();
              for
    (;i!= Map.end();++i)
                {

                    debuglog << "deleting..." << (*i).first << endl;
                    delete
    (*i).second->p;
                    delete
    (*i).second;
                }
             
             
           }

            //friend class manager_traits;
           static manager_traits<Manager>::manager* Instance()
           {

               static
    manager_traits<Manager>::manager gm;
             return
    &gm;
           }

       
           Item GetItem(const Key &key)
           {

                       debuglog << "GetItem:: searching " << key.c_str() << endl;                  
                   TypeMap::iterator it = Map.find(key);
                   if
    (it == Map.end())
                   {

                           debuglog << "*NOT FOUND!*" << endl;
                      if
    (Create_if_not_exists)
                      {

                               if
    (!CreateItem(key)) return Item::NullItem() ;
                           }

                           else return
    Item::NullItem() ;
                           it = Map.find(key);
                   }
       
                       debuglog << "*FOUND!*" << endl;
                   TypeCount *i = (*it).second;//Map[key];                           
                       return Item((*it).first,this,i->p,&i->count);
           }

           bool
    CreateItem(const Key &key,Super *sp = 0)
           {

                      debuglog << "CreateItem::creating... " << key.c_str() << endl;
                   TypeMap::iterator it = Map.find(key);
                   if
    (it == Map.end())
                   {
                   
                      Type *p;
                      if
    (sp)  p = sp;
                      else

                          {
       
                              p = new Super(key);                    
                          if
    (!p)  return false;                 
                          }

                      Map[key] = new TypeCount(p);
                      //p->__key = const_cast(&(*Map.find(key)).first);
                      return true;
                   }

                   return
    false;              
                 
           }

           void
    ReleaseItem(Item *item)
           {

                //pre-erase [virtual]
              TypeMap::iterator i = Map.find(*item->__key);
              delete
    item->p;
              delete
    (*i).second;
              Map.erase(i);
           }

            void
    __debug_info()
            {

                   debuglog << "numitems: " << Map.size() << endl;
                   TypeMap::iterator i = Map.begin();
                   for
    (;i!=Map.end();++i)
                   {

                       debuglog << (*i).first << " :" << (*i).second->count << endl;
                   }
                 

            }
    };

    };


    [/list]


#78
Off-topic / Juaz !
20 de Febrero de 2004, 02:28:01 PM
 Estaba yo programando unas cosas mientras mi novia dormia y creo que he conseguido el record de longitud de warning en menos lineas de codigo

no puedo resistirme:


    --------------------Configuration: genericmanager - Win32 Debug--------------------
    Compiling...
    genericmanager.cpp
    c:\archivos de programa\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree,std::allocator >,std::pair,std::allocator >
    const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager:char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >' : identifier was truncat
    ed to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(46) : see reference to class template instantiation 'std::_Tree,std::allocator >,std::pairtraits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericMa
    nager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatorits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >' being compiled
           d:\javi\prog\genericmanager\genericmanager.h(39) : see reference to class template instantiation 'std::map,std::allocator >,patterns::GenericManagerts,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >
    ' being compiled
           D:\javi\prog\genericmanager\genericmanager.cpp(21) : see reference to class template instantiation 'patterns::GenericManager,std::allocator >,1>' being compiled
    c:\archivos de programa\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree,std::allocator >,std::pair,std::allocator >
    const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager:char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::const_iterator' : identi
    fier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(46) : see reference to class template instantiation 'std::_Tree,std::allocator >,std::pairtraits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericMa
    nager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatorits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >' being compiled
           d:\javi\prog\genericmanager\genericmanager.h(39) : see reference to class template instantiation 'std::map,std::allocator >,patterns::GenericManagerts,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >
    ' being compiled
           D:\javi\prog\genericmanager\genericmanager.cpp(21) : see reference to class template instantiation 'patterns::GenericManager,std::allocator >,1>' being compiled
    c:\archivos de programa\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree,std::allocator >,std::pair,std::allocator >
    const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager:char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::iterator' : identifier w
    as truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(46) : see reference to class template instantiation 'std::_Tree,std::allocator >,std::pairtraits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericMa
    nager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatorits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >' being compiled
           d:\javi\prog\genericmanager\genericmanager.h(39) : see reference to class template instantiation 'std::map,std::allocator >,patterns::GenericManagerts,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >
    ' being compiled
           D:\javi\prog\genericmanager\genericmanager.cpp(21) : see reference to class template instantiation 'patterns::GenericManager,std::allocator >,1>' being compiled
    c:\archivos de programa\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree,std::allocator >,std::pair,std::allocator >
    const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager:char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::_Node' : identifier was
    truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(46) : see reference to class template instantiation 'std::_Tree,std::allocator >,std::pairtraits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericMa
    nager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatorits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >' being compiled
           d:\javi\prog\genericmanager\genericmanager.h(39) : see reference to class template instantiation 'std::map,std::allocator >,patterns::GenericManagerts,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >
    ' being compiled
           D:\javi\prog\genericmanager\genericmanager.cpp(21) : see reference to class template instantiation 'patterns::GenericManager,std::allocator >,1>' being compiled
    c:\archivos de programa\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree,std::allocator >,std::pair,std::allocator >
    const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager:char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::const_iterator' : identi
    fier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(46) : see reference to class template instantiation 'std::_Tree,std::allocator >,std::pairtraits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericMa
    nager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatorits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >' being compiled
           d:\javi\prog\genericmanager\genericmanager.h(39) : see reference to class template instantiation 'std::map,std::allocator >,patterns::GenericManagerts,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >
    ' being compiled
           D:\javi\prog\genericmanager\genericmanager.cpp(21) : see reference to class template instantiation 'patterns::GenericManager,std::allocator >,1>' being compiled
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'std::map,std::allocator >,patterns::GenericManager,std::alloc
    ator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::_Kfn' : identifie
    r was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'std::_Tree,std::allocator >,std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericM
    anager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatoraits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>
    ::Item *> >::iterator __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessar,std::char_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'std::map,std::allocator >,patterns::GenericManager,std::alloc
    ator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::value_compare' :
    identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'std::_Tree,std::allocator >,std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericM
    anager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatoraits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>
    ::Item *> >::iterator __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessar,std::char_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'std::reverse_bidirectional_iterator,std::allocator >,std::pairits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManag
    er,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::It
    em *> >::iterator,std::pair,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::pair::char_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *> &,std::pair,std::allocator > const ,pa
    tterns::GenericManager,std::allocator >,1>::Item *> *,int>' : identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'std::_Tree,std::allocator >,std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericM
    anager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatoraits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>
    ::Item *> >::iterator __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessar,std::char_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'std::reverse_bidirectional_iterator,std::allocator >,std::pairits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManag
    er,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::It
    em *> >::const_iterator,std::pair,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::pairar,std::char_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *> const &,std::pair,std::allocator
    > const ,patterns::GenericManager,std::allocator >,1>::Item *> const *,int>' : identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'std::_Tree,std::allocator >,std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericM
    anager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatoraits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>
    ::Item *> >::iterator __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessar,std::char_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'std::pair,std::allocator >,std::pair,std::allocatorhar> > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManagerar,std::char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator> >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::iterator,bool>' :
    identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'std::_Tree,std::allocator >,std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericM
    anager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatoraits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>
    ::Item *> >::iterator __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessar,std::char_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'std::pair,std::allocator >,std::pair,std::allocatorhar> > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManagerar,std::char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator> >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::iterator,std::_Tr
    ee,std::allocator >,std::pair,std::allocator > const ,patterns::GenericManager,std::allocatorar> >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessaits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,
    std::allocator,std::allocator >,1>::Item *> >::iterator>' : identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'std::_Tree,std::allocator >,std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericM
    anager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatoraits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>
    ::Item *> >::iterator __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessar,std::char_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'std::pair,std::allocator >,std::pair,std::allocatorhar> > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManagerar,std::char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator> >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::const_iterator,st
    d::_Tree,std::allocator >,std::pair,std::allocator > const ,patterns::GenericManager,std::alloca
    tor >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lesshar_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator> > >,std::allocator,std::allocator >,1>::Item *> >::const_iterator>' : identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'std::_Tree,std::allocator >,std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericM
    anager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatoraits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>
    ::Item *> >::iterator __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessar,std::char_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'map,std::allocator >,patterns::GenericManager,std::allocator<
    char> >,1>::Item *,std::less,std::allocator        c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'class std::_Tree,class std::allocator >,struct std::pair<
    class std::basic_string,class std::allocator > const ,class patterns::GenericManager,class std::allocator >,1>::Item *>,struct std::ma
    p,class std::allocator >,class patterns::GenericManager,class std::allocator >,1>::Item *,struct std::lessss std::basic_string,class std::allocator > >,class std::allocator,class std::allocator >,1>::Item *> >
    ::_Kfn,struct std::less,class std::allocator > >,class std::allocator,class std::allo
    cator >,1>::Item *> >::iterator __thiscall std::map,class std::allocator >,class patterns::GenericManager,clas
    s std::allocator >,1>::Item *,struct std::less,class std::allocator > >,class std::allocator_traits,class std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: '~map,std::allocator >,patterns::GenericManager,std::allocator
    >,1>::Item *,std::less,std::allocator        c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'class std::_Tree,class std::allocator >,struct std::pair<
    class std::basic_string,class std::allocator > const ,class patterns::GenericManager,class std::allocator >,1>::Item *>,struct std::ma
    p,class std::allocator >,class patterns::GenericManager,class std::allocator >,1>::Item *,struct std::lessss std::basic_string,class std::allocator > >,class std::allocator,class std::allocator >,1>::Item *> >
    ::_Kfn,struct std::less,class std::allocator > >,class std::allocator,class std::allo
    cator >,1>::Item *> >::iterator __thiscall std::map,class std::allocator >,class patterns::GenericManager,clas
    s std::allocator >,1>::Item *,struct std::less,class std::allocator > >,class std::allocator_traits,class std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : warning C4786: 'std::map,std::allocator >,patterns::GenericManager,std::alloc
    ator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >' : identifier was
    truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(73) : while compiling class-template member function 'std::_Tree,std::allocator >,std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericM
    anager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatoraits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>
    ::Item *> >::iterator __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::lessar,std::char_traits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::end(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(97) : warning C4786: 'pair,std::allocator >,std::pair,std::allocator
    > const ,patterns::GenericManager,std::alloca' : identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(96) : while compiling class-template member function 'struct std::pair,class std::allocator >,
    struct std::pair,class std::allocator > const ,class patterns::GenericManager,class std::allocator >,1>::Item
    *>,struct std::map,class std::allocator >,class patterns::GenericManager,class std::allocator >,1>::Item *,str
    uct std::less,class std::allocator > >,class std::allocator,class std::allocator> >,1>::Item *> >::_Kfn,struct std::less,class std::allocator > >,class std::allocator>,class std::allocator >,1>::Item *> >::iterator,bool> __thiscall std::map,class std::allocator >,class patterns::GenericManager:char_traits,class std::allocator >,1>::Item *,struct std::less,class std::allocator > >,class std::allocatorg,class std::allocator >,1>::Item *> >::insert(const struct std::pair,class std::allocator > const ,class patterns::GenericManagerss std::basic_string,
    class std::allocator >,1>::Item *> &)'
    c:\archivos de programa\microsoft visual studio\vc98\include\map(97) : warning C4786: 'std::pair,std::allocator >,std::pair,std::allocatorhar> > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManagerar,std::char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator> >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::iterator,bool>' :
    identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\map(96) : while compiling class-template member function 'std::pair,std::allocator >,std::pair,std::char_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns
    ::GenericManager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatord::char_traits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator<
    char> >,1>::Item *> >::iterator,bool> __thiscall std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::less:basic_string,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::insert(const std::pair_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *> &)'
    c:\archivos de programa\microsoft visual studio\vc98\include\xtree(182) : warning C4786: 'std::_Tree,std::allocator >,std::pair,std::allocator >
    const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager:char_traits,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocator,std::allocator >,1>:
    :Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::_Redbl' : identifier was
    truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\xtree(176) : while compiling class-template member function '__thiscall std::_Tree,std::allocator >,std::pairchar,std::char_traits,std::allocator > const ,patterns::GenericManager,std::allocator >,1>::Item *>,std::map,std::allocator >,patt
    erns::GenericManager,std::allocator >,1>::Item *,std::less,std::allocator > >,std::allocatorr,std::char_traits,std::allocator >,1>::Item *> >::_Kfn,std::less,std::allocator > >,std::allocator,std::alloca
    tor >,1>::Item *> >::~std::_Tree,std::allocator >,std::pair,std::allocator > const ,patterns::GenericManager:char_traits,std::allocator >,1>::Item *>,std::map,std::allocator >,patterns::GenericManager,std::allocator >,1>::Item *,std::less
    ,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >::_Kfn,std::lessaits,std::allocator > >,std::allocator,std::allocator >,1>::Item *> >(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\xtree(182) : warning C4786: '_Tree,std::allocator >,std::pair,std::allocator > const
    ,patterns::GenericManager,std::allocator ' : identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\xtree(176) : while compiling class-template member function '__thiscall std::_Tree,class std::allocator >,struct st
    d::pair,class std::allocator > const ,class patterns::GenericManager,class std::allocator >,1>::Item *>,struct
    std::map,class std::allocator >,class patterns::GenericManager,class std::allocator >,1>::Item *,struct std::
    less,class std::allocator > >,class std::allocator,class std::allocator >,1>::I
    tem *> >::_Kfn,struct std::less,class std::allocator > >,class std::allocator,class s
    td::allocator >,1>::Item *> >::~std::_Tree,class std::allocator >,struct std::pair,class std::allocator > const ,
    class patterns::GenericManager,class std::allocator >,1>::Item *>,struct std::map,class std::allocator >,class
    patterns::GenericManager,class std::allocator >,1>::Item *,struct std::less,class std::allocator > >,class st
    d::allocatorss std::basic_string,class std::allocator >,1>::Item *> >::_Kfn,struct std::less,class std::allocator > >,class std::allocatorGenericManager,class std::allocator >,1>::Item *> >(void)'
    c:\archivos de programa\microsoft visual studio\vc98\include\xtree(182) : warning C4786: '~_Tree,std::allocator >,std::pair,std::allocator > cons
    t ,patterns::GenericManager,std::allocator' : identifier was truncated to '255' characters in the debug information
           c:\archivos de programa\microsoft visual studio\vc98\include\xtree(176) : while compiling class-template member function '__thiscall std::_Tree
#79
Código de la Semana / Ghost - Zaelius
12 de Enero de 2004, 12:40:20 AM
 
   ghost


    COTW: Ghost Windows
    Autor: Julio Gorgé, a.k.a. Zaelsius
    Web:
www.zsgames.tk
URL: www.alu.ua.es/j/jgf8/code/ghost.zip

-------------- Transparencias en WINDOWS 2000/XP --------------------

Ejemplo sencillo sobre como usar ventanas transparentes
en Windows 2000/XP y superiores. Algunas aplicaciones y "launchers"
de juegos realizan suaves fundidos al comenzar. El efecto de
transparencia se consigue con éstas funciones de la API de windows:

 SetLayeredWindowAttributes()
 SetWindowLong()

y definiendo esta constante antes de incluir "windows.h":

 #define _WIN32_WINNT 0x0500

Si vamos variando el factor de transparencia al lo largo del tiempo,
podemos lograr efectos de fundido como los de 3DMark o WinAmp :D, dando
un toque profesional a nuestros juegos/aplicaciones.

Se incluye código fuente en forma de proyecto para Visual Studio .NET,
aunque el código es estándar y compatible con todos los compiladores
para windows.

El código puede descargarse de aqui:

http://www.stratos-ad.com/codigosemana/ghost.zip

[/list]
#80
General / Simo
26 de Octubre de 2003, 12:12:15 PM
 Por segundo año consecutivo pongo este post para ver si alguno de los miembros del foro o del irc se va a pasar por el SIMO (todos sabemos q es aburrido y que siempre se dice q nunc avas a volver). No estaria mal saberlo.

saludos





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.