• Jueves 27 de Febrero de 2025, 04:29

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 - Eternal Idol

Páginas: 1 ... 69 70 [71] 72 73 ... 205
1751
C/C++ / Re: Error Iso C++
« en: Domingo 11 de Noviembre de 2007, 01:18 »
Cita de: "logicaemp"
Normalmente cuando posteo una respuesta, lleva consigo un
enunciado claro y preciso, basado en una prueba que realizo
con anterioridad, en muchos foros he visto que no prueban
sus respuestas, y a veces esta equivocada.

Es evidente que no fue el caso, ademas de ser una respuesta equivocada no habia ninguna explicacion.

Cita de: "logicaemp"
No es un puntero, es "&".

Genial, el punto seria como podes saber eso ... de cualquier manera es IRRELEVANTE, se le esta pasando una direccion de memoria y eso es de lo que es queja el compilador. Por lo tanto si fuera correcto lo que decis es un problema de logica del programa y un casting no soluciona absolutamente NADA.

Cita de: "logicaemp"
Este esa el código que posteó "x1x1x1" y funciona perfectamente:

¿Es una broma? Eso lo habra publicado en otro foro, aca no esta ese codigo.

Cita de: "logicaemp"
Este es el código que NO se posteo y fué la única forma que pude reproducir el error.

Practicamente todo ese codigo te lo inventaste ...

Esto es redundante teniendo en cuenta TU codigo:
if ((int)mat[b1] > 20) { /* <--------------------------- (int)  */

Cita de: "logicaemp"
Este es el código que recomiendo, aunque estaba previamente claro,
puesto que el error no se presentaba en el código inicial.

Entonces tu primera respuesta pasa a ser estupida. ¿No hay error? ¿Entonces para que hay que hacer un casting? Por favor!

Cita de: "logicaemp"
Perdón por mi insistencia en el mismo tema pero
aún este código funciona correctamente, si ese
fuera el camino que hubiera seleccionado para
crear las variables con punteros.

Reservar tres int's para usar solo uno es muy correcto ...

Te recomiendo que esperes a que el usuario que publico la pregunta haga la aclaracion pertinente sobre su codigo. Si no tenia ningun error de compilacion tu solucion de usar un casting es inutil y si estaba usando el & sin necesidad lo sigue siendo.

1752
C/C++ / Re: Excepción De Coma Flotante
« en: Domingo 11 de Noviembre de 2007, 01:07 »
Cita de: "ka_1989"
Ok, eternal ido, muchas gracias por tu ayuda. Voy a ver como lo depuro porque le he dado mil vueltas, incluso haciendo en papel para ver lo valores que tomaría en memoria, pero lo volvere a mirar.
Muchisimas gracias.
Asta otro momento.
Mira el segundo for, esta mal la condicion, haces contador2=contador-1 entonces contador2++ no tiene ningun efecto y contador2 no cambia de valor nunca.

1753
C/C++ / Re: Excepción De Coma Flotante
« en: Sábado 10 de Noviembre de 2007, 21:58 »
Nunca sale del bucle, depuralo paso a paso y comproba los valores de cada variable. No voy a comentar nada sobre el planteamiento en si mismo, eso te lo dejo pura y exclusivamente a vos.

Agrego: en el segundo for NO estas haciendo una comparacion (==) sino una asignacion (=), esa asignacion "equilibra" el incremento ...

1754
C/C++ / Re: Excepción De Coma Flotante
« en: Sábado 10 de Noviembre de 2007, 21:42 »
¿Y si vemos el codigo? ¿Estas usando %f por casualidad?

1755
C/C++ / Re: Error Iso C++
« en: Sábado 10 de Noviembre de 2007, 21:00 »
Cita de: "logicaemp"
Intenta crear un cast.
(int)mat[b1] > 20
¿Tiene sentido comparar un puntero con 20? A menos que sea 0 siempre va a ser mayor a 20, debe ser un error de logica y hacer un casting para forzar la comparacion no lo solucionaria.

1756
C/C++ / Re: Error Iso C++
« en: Sábado 10 de Noviembre de 2007, 18:27 »
ISO C++ forbids comparison between pointer and integer.

20 es el integer evidentemente.

1757
C/C++ / Re: Parametros Por Referencia
« en: Jueves 8 de Noviembre de 2007, 22:40 »
*ptr = "a";

ptr es un puntero a caracter, tenes que usar un caracter ('w' por ejemplo) y no una cadena ("a").

El while no tiene fin ... mejor incrementa ptr.

char buffer[100] = "hola";

No podes declararlo asi,  "hola" no ocupa ese tamaño, podes usar:
char buffer[] = "hola";

Y por ultimo referencia(&buffer);, saca el operador & y listo.

1758
Cita de: "Angel38"
Esto ha sido una broma, pues nada ha pasado, y en varios foros esta este mensaje.
No creo que haya sido una broma, tal vez si un fracaso segun parece ... pero que respondan los que cedieron su e-mail a la espera de mas informacion ...

1759
C/C++ / Re: Problema Con _beginthreadex En Una Clase
« en: Jueves 8 de Noviembre de 2007, 16:27 »
Cita de: "captaindanieo"
Un millón de gracias Eternal Idol. Ya compila. Yo creo que todo va bien. Si el acceso a los elementos es como me has confirmado, entonces está perfecto :).

Llevaba atascado varias semanas en ese punto, y nadie había podido ayudarme.

Muchísimas gracias de nuevo!  :kicking:
De nadas, es un problema que tarde o temprano uno se encuentra en C++  B)

Otro caso.

1760
C/C++ / Re: Problema Con _beginthreadex En Una Clase
« en: Jueves 8 de Noviembre de 2007, 15:56 »
Cita de: "captaindanieo"
Estoy usando devc++.

Sin embargo creo que había cometido algún error y se me había olvidado algún static en el código.

Si, el necesario  ;)

Cita de: "captaindanieo"
¿Está bien así?

Si, probalo  :kicking:

1761
C/C++ / Re: Problema Con _beginthreadex En Una Clase
« en: Jueves 8 de Noviembre de 2007, 15:32 »
Cita de: "captaindanieo"
Muchas gracias Eternal Idol.

He realizado las modificaciones correspondientes, pero obtengo un error en _beginthreadex.

In member function 'void L2cap:: Server(int,char**)'

argument of type 'unsigned int (L2cap:: )(void*) does not match 'unsigned int (*)(void*)'

Build error (L2cap.o) Error 1


 :(
¿Estas seguro de que estas usando el ultimo codigo? Ese es el error que se obtiene cuando la funcion NO es estatica ...

¿Que compilador estas usando? Tanto con VC++ como con gcc bajo Windows lo compila bien ... cuando se usa:

Código: Text
  1.  
  2. static unsigned __stdcall L2cap::Answer(void* a);
  3.  
  4.  

1762
Visual C++ / Re: Convertir Una Imagen Rgb A Escala De Grises
« en: Jueves 8 de Noviembre de 2007, 10:29 »
Cita de: "drd"
Yo lo decía más que nada porque se quejaba del tiempo que tardaba, yo las uso para otras cosas y en eso no se pierde nada de tiempo, pero vosotros sabéis mucho más que yo, desde luego  :D
Bueno, en lo que tarda es en mostrarla en pantalla en realidad.

1763
C/C++ / Re: Problema Con _beginthreadex En Una Clase
« en: Jueves 8 de Noviembre de 2007, 09:22 »
Cita de: "captaindanieo"
Si pongo Answer como estátito cobtengo el error siguiente:

invalid use of member L2cap::escuchando in static member function  :(
Evidentemente y es por la razon que te decia antes:
Mientras no uses ningun variable miembro de la clase no hay problema, sino tenes que pasarle un puntero a la instancia del objeto ya que al ser una funcion estatica no tiene puntero this (no pertenece a ninguna instancia de la clase). Al ser un solo parametro el que se le puede pasar a un hilo normalmente se usa una estructura con varios campos, en este caso por ejemplo el this y el a. Sino creas otro miembro en la clase L2cap y antes de crear el hilo le asignas a ese campo el valor de a y solo tenes que pasar this para trabajar.

Una posible solucion seria hacer esto:

Primer agregamos un campo a L2cap:
Código: Text
  1.  
  2. private:    
  3.   // VARIABLES GLOBALES
  4.   Socket *s;
  5.   bool escuchando;
  6.  
  7.  

Al crear el hilo pasamos lo que viene a ser el puntero this (la direccion en memoria del objeto):
Código: Text
  1.  
  2. s=in.Accept(); //el nuevo campo de la clase que declaramos
  3. _beginthreadex(0,0,Answer,(void*)this,0,&ret); //pasamos this
  4.  
  5.  

Entonces en Answer ya no recibimos un puntero a Socket sino uno a L2cap:
Código: Text
  1.  
  2. unsigned __stdcall L2cap::Answer(void* a)
  3. {
  4.   L2cap *thisL2cap = (L2cap*)a;
  5. //Ahora podes usar thisL2cap para acceder tanto a escuchando como a s o cualquier otro campo
  6. }
  7.  
  8.  

Por cierto, no uses #include <> con tus archivos ya que estan en el mismo directorio, usa #include "".

1764
C/C++ / Re: Apis De Windows
« en: Jueves 8 de Noviembre de 2007, 08:11 »

1765
C/C++ / Re: Problema Con _beginthreadex En Una Clase
« en: Miércoles 7 de Noviembre de 2007, 21:47 »
Cita de: "captaindanieo"
Muchas gracias de nuevo. La comunicación por sockets la requiero porque me es necesario para simular el comportamiento entre dos instancias de mi programa, que se estén ejecutando, ya sea en la misma máquina o en máquinas distintas.

Bueno, eso fue lo primero que te pregunte, si eran la misma instancia ... me dijiste que si pero en realidad la respuesta era no  ;)

Cita de: "captaindanieo"
No he entendido muy bien la solución de crearme otro miembro en la clase l2cap, ¿a que se refiere? :(

NO es otro miembro, es el mismo pero estatico, declaralo asi y tu programa compilara.

1766
C/C++ / Re: Triangulo De Pascal
« en: Miércoles 7 de Noviembre de 2007, 18:15 »
NO se hacen tareas.

1767
Visual C++ / Re: Convertir Una Imagen Rgb A Escala De Grises
« en: Miércoles 7 de Noviembre de 2007, 14:21 »
Cita de: "drd"
No has pensado en usar alguna biblioteca de tratamiento de imágenes, como openCV, CImage y cosas así, esas operaciones las hacen muy rápido, aunque claro, tienes que usar en memoria su formato de imagen, supongo que a lo mejor te puedes meter en las tripas a ver que hacen, aunque yo no me atrevería.
Pasar una imagen de RGB a escala de grises es algo muy simple, incluso usando el promedio (como dijo gatiori) se obtiene un resultado cercano al esperado.

1768
Visual C++ / Re: Convertir Una Imagen Rgb A Escala De Grises
« en: Miércoles 7 de Noviembre de 2007, 10:26 »
Se hicieron estudios y se demostro que: To convert any color to its most approximate level of gray, first one must obtain the values of its red, green and blue (RGB) primaries.

Then it is sufficient to add 30% of the red value plus 59% of that of the green plus 11% of that of the blue, no matter whatever scale is employed. The resultant level is the desired gray value. These percentages are chosen due to the different relative sensitivity of the normal human eye to each of the primary colors (higher to the green, lower to the blue).

Desde Wikipedia.

Igual NO es blanco y negro, son 256 (de 0 a 255) colores (grises) diferentes y en realidad el codigo deberia ser asi:

Código: Text
  1. bn=(double) ((color.R*0.3)+(color.G*0.59)+ (color.B*0.11));
  2.  

O deberias dividir por 100 el resultado final en tu codigo ya que sino el valor de bn nunca estara entre 0 y 255, y sera invalido:
Color.FromArgb (Int32, Int32, Int32): Creates a Color structure from the specified 8-bit color values (red, green, and blue). The alpha value is implicitly 255 (fully opaque). Although this method allows a 32-bit value to be passed for each color component, the value of each component is limited to 8 bits.

De la MSDN.

Es muy probable que el cuello de botella este en GetPixel y SetPixel.

1769
C/C++ / Re: Problema Con _beginthreadex En Una Clase
« en: Miércoles 7 de Noviembre de 2007, 09:53 »
Cita de: "captaindanieo"
¿Que significa declarar esa función como static Eternal Idol? Es que soy totalmente novato en la programación y me pierdo. :(

Que sea una funcion independiente de una instancia de la clase.

Cita de: "captaindanieo"
¿Puede ser que beginthreadex no pueda usarse dentro de una clase?

Exacto.

Código: Text
  1.  
  2. class L2cap
  3. {
  4.   public:
  5.     static unsigned __stdcall Answer(void* a);
  6. };
  7.  
  8.  

Mientras no uses ningun variable miembro de la clase no hay problema, sino tenes que pasarle un puntero a la instancia del objeto ya que al ser una funcion estatica no tiene puntero this (no pertenece a ninguna instancia de la clase). Al ser un solo parametro el que se le puede pasar a un hilo normalmente se usa una estructura con varios campos, en este caso por ejemplo el this y el a. Sino creas otro miembro en la clase L2cap y antes de crear el hilo le asignas a ese campo el valor de a y solo tenes que pasar this para trabajar.

Pero vuelvo al principio: no es necesario usar sockets - y no tiene logica - dentro un programa sino se necesita comunicaciones por red.

1770
C/C++ / Re: Alternativas Al Fflush Para Linux
« en: Martes 6 de Noviembre de 2007, 21:41 »
Cita de: "su -"
Falso!!!!

fflush() es ANSI C
Si, PERO si seguis leyendo ese mismo enlace:
It should be use for output streams only; otherwise the behavior is undefined.

Agrego: En Windows funciona con cualquier stream (objetos de archivos al fin de cuentas en Windows NT) al terminar llamando a la funcion FlushFileBuffers de la API de Windows.

1771
Visual C++ / Re: Aplicar Una Máscara A Una Imagen
« en: Martes 6 de Noviembre de 2007, 17:21 »
Ah, es VC++.NET en lugar de C# entonces se mueve a Otros CLR.

1772
C/C++ / Re: Problema Con _beginthreadex En Una Clase
« en: Martes 6 de Noviembre de 2007, 15:46 »
Cita de: "captaindanieo"
Si, efectivamente.

Bueno, no tiene ningun sentido recurrir a una libreria de red para eso ...

Cita de: "captaindanieo"
Parece que al estar dentro de mi clase L2cap, obtiene un error de parámetros o algo. Ahi es donde tengo el problema.

Si declaraste la funcion como static asi te deberia funcionar ...

1773
Visual C++ / Re: Aplicar Una Máscara A Una Imagen
« en: Martes 6 de Noviembre de 2007, 10:55 »
Viendo tu codigo me parece que este hilo esta mal ubicado y deberia ser movido al subforo de C#.

1774
C/C++ / Re: Problema Con _beginthreadex En Una Clase
« en: Martes 6 de Noviembre de 2007, 09:00 »
¿Dentro del mismo programa (en la misma instancia) usas sockets?

Para que el _beginthreadex compile hace:
_beginthreadex(0,0,L2cap::Answer,(void*) s,0,&ret);

1775
Visual C++ / Re: Programa Que Implemente Un Triangulo De Pascal
« en: Domingo 4 de Noviembre de 2007, 20:58 »
NO SE HACEN TAREAS

Páginas: 1 ... 69 70 [71] 72 73 ... 205