Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - eferion

#1111
Programación General / Re: "Source code"
19 Julio 2013, 19:11 PM
Tienes que compilarlos... y esa es una tarea que no tiene una forma única y exacta de hacerse, depende de si tiene dependencias, si viene con un makefile o no, si viene preparado para compilar en Windows o en Linux o ambos...

Debido a que no sabes esto quizás debieras empezar por aprender a programar en c o c++ y luego lanzarte a la aventura con programas más avanzados
#1112
PHP / Re: decodificar imagenes
19 Julio 2013, 11:10 AM
Cita de: Geek7 en 17 Julio 2013, 21:47 PM
Código (css) [Seleccionar]


background: url(index.php?img=gifLogo) 0 0 no-repeat;


Esa línea está cargando una imagen a través de una página php.

Lo que tienes que hacer es que la página php a la que se llama sea capaz de volcar el contenido html correspondiente a una imagen.

Para eso tienes que preparar la página php para que no vuelque nada más que lo siguiente:
* en primer lugar, los header correspondientes. Solo hay uno obligatorio y es el que indica el tipo mime de la imagen.
* en segundo lugar el código de la imagen. Para facilitar esta tarea, php dispone de funciones que te facilitan esta parte del trabajo.

Código (php) [Seleccionar]

<?php
header
'Content-Type: image/png' );

$img imagecreatefrompng'ruta_imagen' );
imagepng$img );
imagedestroy$img );
#1113
Programación General / Re: "Source code"
19 Julio 2013, 09:38 AM
si ya tienes el código fuente... cual es el problema ??

* No sabes cómo funciona ??
No creo que nadie vaya a empollarse el código por ti para explicarte su funcionamiento paso a paso.

* No sabes qué hacer con el ??
Pues no se, primero intenta entender el código y después si quieres pruébalo en un entorno seguro.

* No sabes cómo añadirle funcionalidad ??
Para eso primero deberías conocer cómo funciona el troyano y el entorno en el que se mueve... si es de IRC, por ejemplo, deberías mirarte la documentación sobre el protocolo IRC, posibles vulnerabilidades, etc.

* No sabes qué funcionalidad añadirle ??
Todo es cuestión de dedicarle tiempo... o lo mismo es que el programa está bien tal cual está. Hay un dicho que dice "se sabe que se ha alcanzado la perfección en algo no cuando no hay más que añadir, sino cuando no queda nada que quitar". Dicho en cristiano... las cosas, cuanto más simples, mejor.

* otras cuestiones ??
Adelante, no te cortes y expón tus inquietudes.
#1114
Programación C/C++ / Re: scanf y gets
19 Julio 2013, 08:40 AM
Cita de: m@o_614 en 19 Julio 2013, 06:48 AM
entonces si por ejemplo quiero ingresarle no se... 5 nombres cualquieras:

char *a[5]

*(a+0)="Maria";
*(a+1)="Jose";
etc...

pero no quiero estar contando el numero de letras cada vez que tenga que asignar memoria para cada nombre, como se le asignaria la memoria??

perdona que pregunte tanto pero es que los punteros no se me dan

Los arrays de caracteres no se pueden copiar "a pelo" con el operador igual... tienes que utilizar funciones de copia ( strcpy, memcpy, etc ).

Para el caso que planteas necesitarías tener por un lado el array de cadenas de caracteres y por otro una variable que te indique cuántas posiciones están ocupadas. Esto mismo lo puedes agrupar en una estructura para que su uso sea más cómodo:


struct cadenas
{
  // De las dos opciones siguientes elige una:

  // * Si quieres gestionar la memoria dinámicamente con malloc y free
  char **a;

  // * Si quieres que de la gestión de la memoria se encargue el sistema
  char a[5][20];

  int index;
};


De esta forma, si inicializas index a 0 y lo vas incrementando después de añadir un nombre al vector, gestionar las cadenas se vuelve una tarea bastante sencilla:


struct cadenas cadena;

// ...

// Nuevo elemento
strcpy( cadena.a[ cadena.index ], "nombre" );
cadena.index++;

// Preguntar por el numero de elementos
int numero_elementos = cadena.index;

// Recorrer todos los elementos
int i;
for ( i=0; i<cadena.index; ++i )
{
  // ...
}
#1115
Cita de: 0xDani en 18 Julio 2013, 17:09 PM
A ver, al compilar este programa con gcc 4.7.2:

#include <stdio.h>

int main()
{
int* a, b;
int c;

b =  &c;

printf("0x%x\n", b);

return 0;
}


me salta este aviso:


De lo que se deduce que b es un entero, y no un puntero.

Saludos.

Vale, entonces te pasa lo mismo que a mi compilando con msvc
#1116
Has pensado quizás en dar el salto completo y hacerlo con clases??

si, se que estás aprendiendo y que no lo entiendes aún, pero la mejor forma de entender una pieza fundamental de c++ es usándola.

Este es un ejercicio estupendo para practicar un montón de características de c++: clases, polimorfismo, herencia.

En caso negativo, crea funciones más sencillas... aunque salgan más. Te ayudarán a encontrar más facilmente errores como este:

Código (cpp) [Seleccionar]
if ((tablero[xinic][yinic]=="t1")||(tablero[xinic][yinic]=="t2"))
{
saltoPieza=false;
if ((xinic==xfin)||(yinic==yfin))
if (xinic==xfin)
{
if (yfin>yinic)
{
for (int i=yinic;i<=yfin-1;i++)
{
if ((tablero[xinic][i]!=tablero[xinic][yinic])&&(tablero[xinic][i]!="  "))
{
saltoPieza=true;
}
}
}
if (yfin<yinic)
{
for (int i=yinic;i>=yfin+1;i--)
{
if ((tablero[xinic][i]!=tablero[xinic][yinic])&&(tablero[xinic][i]!="  "))
{
saltoPieza=true;
}
}
}
}
if (yinic==yfin)
{
if (xfin>xinic)
{
for (int i=xinic;i<=xfin-1;i++)
{
if ((tablero[i][yinic]!=tablero[xinic][yinic])&&(tablero[i][yinic]!="  "))
{
saltoPieza=true;
}
}
}
if (xfin<xinic)
{
for (int i=xinic;i>=xfin+1;i--)
{
if ((tablero[i][yinic]!=tablero[xinic][yinic])&&(tablero[i][yinic]!="  "))
{
saltoPieza=true;
}
}
}
}
if (saltoPieza==false)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}


Ese último else es el que te está matando...

mira, lo simplifico para que se vea mejor:

Código (cpp) [Seleccionar]
if ((tablero[xinic][yinic]=="t1")||(tablero[xinic][yinic]=="t2"))
{
                 // ...
}
else
{
return false;
}


Si no es torre te va a devolver false siempre.


#1117
Si puedes evitar este tipo de líneas mejor. Por lo que he podido ver en este hilo depende del compilador a utilizar...

En un programa la claridad es un factor clave.

Mejor lo dejas así:

int *ptr1, *ptr2, *ptr3;

Que compila y te quitas de problemas.


#1118
Y concretamente... en qué consiste el error??
#1119
Cita de: Oblivi0n en 18 Julio 2013, 16:32 PM
Para programar en C hace falta un poco mas que conocer el lenguaje  ;)

Yo más bien diría que lo suyo es no optar por código tan peregrino y, visto lo visto, tan propenso a segundas interpretaciones.
#1120
No me había dado cuenta de ese detalle... también es cierto que evito ese tipo de declaraciones.

bueno ojo OxDani

void main( )
{
  int* a, b;

  b = 1;
  a = &b;
  b = a;
}


resultado:

error: C2440: '=' : cannot convert from 'int *' to 'int'
There is no context in which this conversion is possible