• Martes 22 de Mayo de 2012, 23:31

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.


Mensajes - diego.martinez

Páginas: [1] 2 3 ... 12
1
C/C++ / compilador con confusion con tipos bool y BYTE
« en: Jueves 16 de Febrero de 2012, 19:22 »
Buenas:

Estoy intentando compilar un proyecto y me estoy encontrando con que el compilador es como si confundiese bool y BYTE.
Por ello, cuando compilo me da el fallo:


1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcomcli.h(2147): error C2535: 'ATL::CComVariant::CComVariant(BYTE) throw()' : member function already defined or declared

justo despues de
Código: C++
  1. CComVariant(_In_ bool bSrc) throw()
  2.         {
  3.                 vt = VT_BOOL;
  4.                 boolVal = bSrc ? ATL_VARIANT_TRUE : ATL_VARIANT_FALSE;
  5.         }
  6. CComVariant(_In_ BYTE nSrc) throw()  //<--- FALLO
  7.         {
  8.                 vt = VT_UI1;
  9.                 bVal = nSrc;
  10.         }
  11.  

y luego me da errores que me hacen pensar que confunde a veces bool con BYTE, pero no se por que

DeviceBeacon.cpp(66): error C2556: 'BYTE DEVICEBEACON::AllowBarChange(int *,int *,int *)' : overloaded function differs only by return type from 'bool DEVICEBEACON::AllowBarChange(int *,int *,int *)'
1>          c:\users\diego\desktop\current\agotekconfigurator2.0 v2.2.5\DEVICEBEACON.h(23) : see declaration of 'DEVICEBEACON::AllowBarChange'

y en la clase esta definido :

Código: C++
  1.  bool           AllowBarChange  (int *,int *,int *);
  2.  

y en el cpp donde dice que esta el fallo:

Código: C++
  1. bool    DEVICEBEACON::AllowBarChange    (int * P,int * S,int * R)
  2. {
  3.         *R=0;
  4.         return true;
  5. }
  6.  

Alguien sabe a que se puede deber esto?
Me esta volviendo loco.

Gracias!

2
C/C++ / Re:Convertir secuencia de imagenes en video
« en: Martes 24 de Enero de 2012, 20:13 »
haz tu el loop. Crea un proceso que liste los ficheros periodicamente, y cuando cambien ejecuta la generación.

Otra opcion sería hacer un hook del sistema de archivos...

3
C/C++ / Alguien sabe de alguna libreria para layout?
« en: Martes 24 de Enero de 2012, 20:11 »
Buenas:

Tengo una proyecto de aplicación de mdi, y queria que las ventanas y los paneles hicieran docking y pudieran cambiarse, como hace el visual studio o cualquiera similar vamos.

He estado mirando un poco y parece que hay varias, pero he visto que las hay de pago, que muchas son para mfc o .net. Alguien sabe de alguna para win32 puro?

Gracias :)

4
C/C++ / Re:FIONREAD was not declared in this scope?
« en: Viernes 7 de Octubre de 2011, 12:19 »
pues si, era eso. Lo desconcertante es que he estado leyendo un manual para la lectura del rs232 que me decian lo de que estaba incluido en termios.h y luego googleando lo mismo... que curioso

muchas gracias EternalIdol!

5
C/C++ / FIONREAD was not declared in this scope?
« en: Jueves 6 de Octubre de 2011, 18:18 »
Buenas:

Me salta el error
/home/diego/pru_project/src/pru_project.cpp: In function 'int main()':
/home/diego/pru_project/src/pru_project.cpp:65: error: 'FIONREAD' was not declared in this scope
/home/diego/pru_project/src/pru_project.cpp:65: error: 'ioctl' was not declared in this scope
make[2]: *** [pru_project.o] Error 1

En el codigo, parece que no encuentra la constante de FIONREAD pero en la documentación pone que esta en termios.h e ioctl lo mismo.
Estoy programando en Unix (Ubuntu) y usando Kdevelop.

Que puede estar pasando? por que la cabecera la tengo incluida en el modulo.
Gracias!



Código: C++
  1. /***************************************************************************
  2.  by Diego Martinez
  3.  ***************************************************************************/
  4.  
  5.  
  6.     #include <stdio.h>   /* Standard input/output definitions */
  7.     #include <string.h>  /* String function definitions */
  8.     #include <unistd.h>  /* UNIX standard function definitions */
  9.     #include <fcntl.h>   /* File control definitions */
  10.     #include <errno.h>   /* Error number definitions */
  11.     #include <termios.h> /* POSIX terminal control definitions */
  12. #include <iostream>
  13. #include <getopt.h>
  14.  
  15.     /*
  16.      * 'open_port()' - Open serial port 1.
  17.      *
  18.      * Returns the file descriptor on success or -1 on error.
  19.      */
  20.  
  21.     int open_port(void)
  22.     {
  23.       int fd; /* File descriptor for the port */
  24.  
  25.  
  26.       fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
  27.       if (fd == -1)
  28.       {
  29.        /*
  30.         * Could not open the port.
  31.         */
  32.  
  33.         perror("open_port: Unable to open /dev/ttyS0 - ");
  34.       }
  35.       else
  36.       {
  37.         fcntl(fd, F_SETFL, 0);
  38. //The FNDELAY option causes the read function to return 0 if no characters are available on the port. To restore normal (blocking) behavior, call fcntl() without the FNDELAY option:
  39.         fcntl(fd, F_SETFL, FNDELAY);           
  40.         //configuramos el puerto
  41.         struct termios options;
  42.         // Get the current options for the port...
  43.         tcgetattr(fd, &options);
  44.         // Set the baud rates to 19200...      
  45.         cfsetispeed(&options, B9600); //baudios de entrada
  46.         cfsetospeed(&options, B9600); //baudios de salida
  47.         //Enable the receiver and set local mode...
  48.         options.c_cflag |= (CLOCAL | CREAD);
  49.      // Set the new options for the port...
  50.         tcsetattr(fd, TCSANOW, &options);
  51.         }
  52.  
  53.  
  54.       return (fd);
  55.     }
  56.  
  57. int main()
  58. {
  59. int hcom=open_port();
  60.  
  61.  
  62. while(true)
  63. {
  64. int bytes;
  65. ioctl(hcom, FIONREAD, &bytes);
  66. if (bytes>0)
  67.         printf("Datos!\r\n");
  68. }
  69.  
  70. close(hcom);
  71.  
  72. return 0;
  73. }

6
C/C++ / Redibujado Owner Drawn del Frame de la ventana
« en: Martes 6 de Septiembre de 2011, 17:28 »
Buenas:

Estoy buscando tutoriales para hacer la ventana completamente Owner Drawn en Win32. Con imagenes en los botones de minimizar maximizar y cerrar.
Lo que quiero es principalmente redibujar el frame de la ventana para tener otro estilo (en negro como la apariencia de Steam).
Para ello tendria que capturar los eventos de dibujado y todo eso, pero no se muy bien por donde ir, por ejemplo, para obtener el boton de cerrado y minimizado (con FindWindow?).

a ver si me podeis orientar, que en Google hay cientos de tutoriales para hacer ownerdrawn de controles pero no de lo que es el frame.
La otra opcion podria ser quitar el frame, usar una ventana sin titulo y manipular yo los botones, pero me parecia complicarlo, especialmente por que quiero que mi aplicación tenga multiples ventanas.

Gracias!

7
PHP / una buena libreria para autenticación de usuarios en PHP?
« en: Viernes 2 de Septiembre de 2011, 12:46 »
Buenas:

Buscaba alguna libreria para la autorización y acceso de usuarios a una serie de páginas y directorios en PHP.

Alguna sugerencia?

Gracias! :D

8
Programación de Aplicaciones para Dispositivos / usando Smack API para enviar XMPP
« en: Miércoles 24 de Agosto de 2011, 10:53 »
Buenas:

Estoy usando la libreria Smack para usar el protocolo XMPP en dispositivos Android.
He hecho una aplicación que me permite mandar y reacibhir mensajes en chats Jabber o GTalk y funciona correctamente conectandome a los servidores de Jabber y Gmail.
Sin embargo, si monto un servidor OpenFire en mi localhost y conecto, me falla en la autorización (y he creado el usuario y configurado etc).

Si conecto el Spark a localhost funciona correctamente. Alguna idea? Gracias!

Código: Java(TM) 2 Platform Standard Edition 5.0
  1. // TODO Auto-generated method stub
  2.                 ConnectionConfiguration config=null;
  3.                 Connection connection=null;
  4.                
  5.                 try
  6.                 {
  7.                 System.out.println("Emisor: Creando conexión");
  8.                 // Create the configuration for this new connection
  9.                 config = new ConnectionConfiguration(
  10.                 "localhost",
  11.                 5222
  12.                 );
  13.                 config.setCompressionEnabled(true);
  14.                 config.setSASLAuthenticationEnabled(false);
  15.  
  16.                 System.out.println("Emisor: Estableciendo conexión");
  17.                 connection = new XMPPConnection(config);       
  18.  
  19.  
  20.                 // Connect to the server               
  21.                 connection.connect();
  22.                 System.out.println("Emisor: conectando...");
  23.                 // Log into the server
  24.                 connection.login("kulebril@diego-sw","password");
  25.                 System.out.println("Emisor: conectado con éxito");
  26.                
  27.                 XMPPServerListener Listener=new XMPPServerListener();
  28.                
  29.                 System.out.println("Emisor: creando sala de chat...");
  30.                 Chat chat = connection.getChatManager().createChat("admin@localhost", Listener);               
  31.                
  32.                 int i=0;
  33.                
  34.                 while(true)
  35.                 {
  36.                 i++;           
  37.                 System.out.print(".");
  38.                 chat.sendMessage("Enviando mensaje "+String.valueOf(i)+" desde Server");
  39.                  Thread.sleep(4000);
  40.                 }
  41.                
  42.                 }
  43.                 catch(XMPPException Ex)
  44.                 {
  45.                         System.out.println("Excepcion:----------------------------------");
  46.                         System.out.println(Ex.getMessage());                   
  47.                 }
  48.                 catch(Exception Ex)
  49.                 {
  50.                        
  51.                 }
  52.  
  53.  
  54.         }
  55.        
  56.         public void processMessage(Chat arg0, Message arg1) {
  57.                 // TODO Auto-generated method stub
  58.                
  59.                 String s=new String();
  60.                 s+="Packet received from:";
  61.                 s+=arg1.getFrom();
  62.                 s+="\r\nSubject:\r\n";
  63.                 s+=arg1.getSubject();
  64.                 s+="\r\nBody:\r\n";
  65.                 s+=arg1.getBody();
  66.                
  67.                 javax.swing.JOptionPane.showMessageDialog(null, this, s, 0);
  68.         }
  69.  
  70. }
  71.  
  72.  

9
C/C++ / Re: Como ajustar el fondo de una imagen con el Center Image
« en: Lunes 23 de Mayo de 2011, 17:58 »
ya lo he descubierto, es el pixel superior izquierdo el que define el color del fondo.

10
C/C++ / Re: como hacer un entrada con valores fraccionarios en c++?
« en: Lunes 23 de Mayo de 2011, 17:01 »
que quieres decir con romper el codigo?

si recibes un string y luego lo interpretas no deberias de tener problema.

11
C/C++ / Como ajustar el fondo de una imagen con el Center Image
« en: Lunes 23 de Mayo de 2011, 17:00 »
Buenas:

Tengo un dialogo con una imagen que tiene el atributo center image a true.

La imagen se centra bien, pero cuando amplio el dialogo dandole a maximizar, y el frame de la imagen se amplia, la imagen se centra pero el visual studio rellena el fondo de la imagen con un color que no queda bien y no se que puedo hacer para indicarle que color debe usar.

Alguna idea?

Gracias!

12
MySQL / Trigger para enviar sentencia a base de datos remota
« en: Viernes 6 de Mayo de 2011, 12:43 »
Buenas!

Tengo una base de datos MySql ubicada en el servidor A con una estructura X.
Tengo otra base de datos nueva y con otro formato en un servidor B con una estructura Y.

La base de datos A esta populada por miles de datos de productos con unas columnas determinadas.

Lo que quiero es que cada vez que se haga una inserción en la base de datos A, se haga una insercion con otra estructura (pero a partir de los datos suministrados) en la otra base de datos ubicada en el otro Servidor.

La idea es hacer un trigger para que los programas que sigan metiendo datos en la base de datos A empiecen a copiar los datos con la otra estructura en B, pero no se como hacer para que el insert en el BEFORE INSERT haga la solicitud en una base de datos remota ubicada en otro servidor. Es esto posible?

Gracias! :)

13
Windows / Como reparo la LSP en windows7?
« en: Viernes 8 de Abril de 2011, 18:08 »
BUenas:


Un virus me ha afectado a la LSP y me impedia acceder a ciertas conexiones.
Elimine el virus y todas sus entradas del registro, pase varios antivirus y parece que ya no está.
Sin embargo, la lsp parece que sigue estando filtrada, por que por ejemplo, no puedo mandar paquetes desde messenger, ni establecer conexiones https.

Antiguamente, en XP usaba el LSPFix, pero no puedo hacerlo en Windows7.

He probado a reiniciar netsh pero tampoco  alguien sabe como?

gracias!

14
C/C++ / Re: Principiante - fallo en minicalculadora
« en: Jueves 23 de Diciembre de 2010, 12:43 »
es el ; que has puesto en todos los if menos en el de suma.

Cuando se ejecuta un IF se ejecuta el siguiente bloque o instruccion. Con ese ; indicas que no hay instruccion a ejecutar. Despues, se encuentra con un bloque y lo ejecuta. Luego te dara el resultado de todas las operaciones menos suma.

15
C/C++ / Re: Eliminar Objeto en C++
« en: Jueves 23 de Diciembre de 2010, 12:41 »
umm podrias hacer un subobjeto dentro de Objeto, por ejemplo usuario.
Cuando entras en el proceso, instancias localmente un objeto del subtipo.
Ten en cuenta que cuando usas el constructor por defecto, se activa el destructor por defecto al abandonar el scope (ese es el truco de los smartpointers).

16
C/C++ / Re: Duda con atof
« en: Martes 9 de Noviembre de 2010, 17:31 »
te vale con un bucle de nada!
Código: C++
  1.  
  2.  
  3. int i=0;
  4.  
  5. if (string_con_numero[0]=='+' || string_con_numero[0]=='-')
  6. i=1;
  7.  
  8. for (;string_con_numero[i]!=0;i++)
  9. {
  10. if (string_con_numero[i]>'9' || string_con_numero[i]<'0')
  11. return false;
  12. }
  13.  
  14. return true;
  15.  
  16.  
  17.  

17
C/C++ / Re: Cerrar y reabrir un socket
« en: Lunes 18 de Octubre de 2010, 19:30 »
si. parece que la espera es inevitable. Por suerte, he visto que solo se produce en el socket cliente, asi que si el cliente desconecta correctamente, la finalización del server es inmediata.

gracias!

18
C/C++ / duda con exception handling
« en: Lunes 18 de Octubre de 2010, 18:56 »
buenas:

estoy programando un interprete, y lo tengo hecho de este estilo:
Código: C++
  1.  
  2.       try   
  3.       {     
  4.         CallFunction("main");
  5.         return Ret.value;
  6.       }
  7.       catch(ParseException exc)         
  8.       {
  9.         sntx_err(exc.get_err());                         
  10.       }
  11.  
  12.  

Asi, durante el proceso del parsing de la funcion main, se realiza toda la interpretación del script.
Cuando el script encuentra un error de sintaxis (u otros), lanza un

Código: C++
  1.  
  2. throw(ParseException(IDENTIFICADOR_DE_TIPO))
  3.  
  4.  

Así, cuando encuentra un error, aborto el Parsing y muestro el error usando la cuncion sntx_err que simplemente muestra la función y la linea y columna de error, con su tipo.

El tema es, como puedo hacer que ejecute el throw, PERO CONTINUE EL PARSING después de la excepción?
o sea, que no se finalice al terminar el catch, si no que continue despues del throw si es permisible (por el gestor de errores), por que si no, solo me muestra un fallo por interpretación.
(Tengo todo el codigo para modificar, pero no se como hacerlo).

gracias!  :good:

19
C/C++ / Re: Cerrar y reabrir un socket
« en: Miércoles 13 de Octubre de 2010, 16:03 »
buenas

Ya he conseguido poner las extensiones de winsock y poder usar el DisconnectEx

sin embargo, cuando lo ejecuto me bloquea la aplicación durante todo el tiempo del time_wait (varios minutos)

en la documentacion lo dice:

Note  The socket level disconnect is subject to the behavior of the underlying transport. For example, a TCP socket may be subject to the TCP TIME_WAIT state, causing the DisconnectEx call to be delayed.

hay alguna solucion a esto?

gracias!

20
C/C++ / Re: Cerrar y reabrir un socket
« en: Martes 28 de Septiembre de 2010, 15:55 »
gracias, pero me pasa algo curioso

incluyo Mswsock.h pero me sigue dando

error C3861: 'DisconnectEx': identifier not found, even with argument-dependent lookup

he puesto tambien la WINVER a 0x0500 por si acaso pero sigue dandome el mismo fallo, en msdn no pone nada al respecto. ¿Que tengo que hacer?

21
C/C++ / Re: sockets posix, send y recv devuelven -1
« en: Miércoles 22 de Septiembre de 2010, 20:23 »
has comprobado el error que te devuelve?

si los sockets los has definido como non-blocking, siempre que haces una accion con ellos (recv, send, recvfrom...) retornan inmediatamente con un error y ponen como error

WSA_SHOULDBLOCK

que indica que el socket ha finalizado por ser no bloqueante, pero el proceso se realiza igualmente de forma no secuencial (tal y como explicas).

mira a ver si tienes algo como ioctl o algo asi cambiando el comportamiento del socket.

22
C/C++ / Cerrar y reabrir un socket
« en: Miércoles 22 de Septiembre de 2010, 18:04 »
Buenas:

Tengo una aplicación que escucha un puerto UDP por un puerto (digamos que 10000) y que envia los datos tratados por otro puerto TCP digamos el 10001.
Son Sockets non-blocking. Uso el FD_SET y el select para saber si tienen datos de entrada o salida para enviar y recibir.

Todo funciona correctamente, pero cuando finalizo las conexiones, al intentar reabrir de nuevo, me encuentro con problemas.
El socket TCP se queda en un estado en el que nunca tiene forma de escribir y siempre lee 0 bytes.
El select siempre me da como que tiene para leer, pero no para escribir.

Si hago netstat -ano en el equipo, me encuentro que los sockets no han sido eliminados sino que estan en TIME_WAIT y encima hay multiples sockets conectados de la misma forma.

el finalizado del socket lo hago con

shutdown()
y luego
closesocket()

son sockets en WIN32.
Código: C++
  1.  
  2. int W32SOCKET_TCP::Close()
  3. {
  4.     this->State=GSOCKET::STATE::KILLING;
  5.     shutdown(this->ID,2);
  6.     return  closesocket(this->ID);   //ID es el identificador de SOCKET
  7. }
  8.  
  9.  

que estoy haciendo mal? por que no se finalizan los sockets para que pueda volverlos a abrir?

PD: no estoy usando multitarea. Uso una función Poll para enviar y recibir segun el estado del select.

gracias!

23
C/C++ / Re: Leer archivo binario y guardar en una estructura
« en: Miércoles 8 de Septiembre de 2010, 13:59 »
pues una vez abierto el fichero:

int fread(FILE * f, size_t tamaño, int numero a leer, void * memory)

osea, para leer las 10 harias

fread(Fichero, sizeof(LIST_ELEMENT),10,elements);

24
C/C++ / Creando mi propia runtime library
« en: Jueves 22 de Julio de 2010, 00:05 »
Buenas:

Estoy creando una demo de 4k y estoy desactivando toda la runtime.
Pero me ha surgido un problema con los senos y cosenos.

: error LNK2019: símbolo externo __CIcos sin resolver al que se hace referencia en la función _cosf

es un fallo curioso y no se como evitarlo.
Alguien sabe?

25
Programación de Videojuegos / Re: animacion 3d
« en: Lunes 19 de Julio de 2010, 11:53 »
buenas:

lo que tu necesitas se llama skinning , tienes ejemplos por internet. Pero grosso modo es que guardes los bones de forma jerarquica junto con los pesos de cada vertice. Despues por cada bone calculas la matriz definitiva y la aplicas sobre todos los vertices multiplicado por el peso del vertice.
Eso para hacerla por software, lo que no recomiendo, ya que hay shaders que se encargan de todo.

Páginas: [1] 2 3 ... 12