elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 83
1  Programación / Programación C/C++ / Re: Duda acerca de la programación y GitHub en: 4 Diciembre 2016, 17:07
Hola muchas gracias por responder Ivan eso es un juego en Java que estás haciendo verdad?

Este este el núcleo por así decirlo? https://github.com/ivancea/RogueLikeGame/blob/master/RogueLikeGame/src/es/hol/ivancea/RogueLikeGame.java

Y a ver yo no quiero estudiar al 100% metasploit simplemente he puesto ese ejemplo podría haber puesto cualquier otro pero es más que nada para saber donde se ubica normalmente el corazón del programa, y otra pregunta espero no ser muy pesado, yo ahora mismo mis programas en C++ llego y le pongo esto en la terminal para compilarlos:

Código:
g++ programa.cpp -o programa

Funciona de maravilla pero ahora me pregunto yo, y si en vez de un fichero (programa.cpp) fuesen muchos ficheros separados y en diferentes carpetas y todo eso como los compilo todos juntos para que funcione bien? O esto no es así? Muchas gracias a todos!!!! Aunque ahora pensándolo bien Metasploit no ha sido para nada el mejor ejemplo que podía haber puesto ya que según tengo entendido Ruby es un lenguaje interpretado no compilado,

Saludos!!

Para eso tienes un precioso fichero Makefile en la mayoría de los proyectos de C++.

De hecho si en la carpeta donde tienes el fichero "programa.cpp" creas el fichero "Makefile":

Código:
#Makefile prueba
all: prueba.o
g++ prueba.o -o prueba

prueba.o: prueba.cpp

Y luego abres una terminal y haces:
Código:
make

Seguramente te compilará el programa( si yo no me he equivocado escribiéndolo claro).

¿Y cómo sé manejar esa sintaxis? Pues léete el manual de make.

Pero vamos básicamente es:

Código:
regla1: dependencias
      cosa que hacer cuando se ejecuta la regla1

regla2: dependencias
      cosa que hacer cuando se ejecuta la regla2

Para ejecutar la regla1 puedes hacer:

Código:
make regla1

O simplemente make, pues si no pones nada, pilla la primera regla que haya en el fichero Makefile.

Para ejecutar la regla2 forzosamente tienes que poner:

Código:
make regla2
2  Programación / Programación C/C++ / Re: Duda acerca de la programación y GitHub en: 4 Diciembre 2016, 16:51
Hola Orubatosu muchas gracias por responder esa parte ya la entendía pero la que no entiendo es que por ejemplo cojo entro aquí:

https://github.com/rapid7/metasploit-framework

Como puedo ver el primer archivo que programaron para ir enlazando todo y ver como se estructura viendo las librerías que importa y en que momento utiliza las funciones y todo eso, no se si me explico

Saludos
Eso está hecho en Ruby, lo que quiere decir que antes como mínimo deberías tener conocimiento medio de ese lenguaje. Hoy en día hay muchas herramientas para la automatización del despliege de las aplicaciones (proceso requerido para que éstas empiecen a funcionar), normalmente cada lenguaje tiene un conjunto de herramientas que te permiten hacerlo. Esas herramientas suelen tener archivos de configuración que te permiten ver cómo está estructurado ese proceso, algo que te puede aclarar mucho las cosas sobre dónde está el punto de entrada de las mismas.

De todas maneras lo que pides es complicado si no hay documentación de por medio o si el software es muy grande, en ese proyecto han contribuido 400 personas, como supongo que intuirás, habrá gente que no tiene ni idea de cómo está hecha otra parte de la aplicación. Si en el desarrollo de aplicaciones cada programador tuviera que saber cómo está implementado cualquier otro módulo, el desarrollo de software no sería factible, ni en tiempo, ni en coste. De hecho lo tuyo es aún más complicado, estás intentando entender la arquitectura de un software realizándole Ingeniería Inversa al código.

En C++ lo que más se usa son las https://es.wikipedia.org/wiki/GNU_build_system . Y por todo esto que te cuento es tan importante la Ingeniería del Software hoy día, poner de acuerdo a tantísima gente no es fácil.

No es por desanimarte, pero digo que para entender un software al completo te debes dedicar por completo a estudiarlo, y si no tienes a nadie que te introduzca en el tema y no hay documentación, puedes morir en el intento.

Además para cada lenguaje de programación, o ellos mismos u otras empresas establecen guías de estilo, que pueden ir desde convenciones para el nombrado de variables, métodos y clases hasta los nombres y la organización de las carpetas.

EDIT: De hecho se usan patrones de diseño de software, patrones para la arquitectura como el MVC (Modelo Vista Controlador) que está por todos lados. Aunque parezca que no, te aseguro que si metes a 20 personas en una habitación a trabajar conjuntamente en un software, únicamente picando código cada uno por su lado seguramente habrá un 99% de probabilidades de que la aplicación falle en su despliege.

Saludos.
3  Programación / Programación C/C++ / Re: Ayuda con la plantilla y herencia en: 26 Noviembre 2016, 01:03
Hola Akumadie, podría ser porque tienes colocar las implementaciones de los métodos que usen programación genérica en el mismo fichero que su declaración (.hpp) o instanciar explícitamente las plantillas que vayas a usar en el ".cpp" en el que estás definiendo dichos métodos.

Por desgracia el enlazador no es capaz de realizar el enlace correctamente. Para ello se intentó incorporar la palabra reservada export en C++11, pero no se ha podido implementar correctamente y ha quedado como reservada pero en desuso. http://en.cppreference.com/w/cpp/keyword/export .

Si quieres más información:

http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file/495056#495056

Un saludo.
4  Programación / Programación C/C++ / Re: Ayuda urgente error en valgrind en: 27 Agosto 2016, 04:46
Hola, el error que te da valgrind es claro, no inicializas la variable i cuando la declaras. Así que con esto debería arreglarse:
Código
  1. int comparar(int vector1[], int n1, int vector2[], int n2)
  2. {
  3.    int i = 0; //esto es lo que debes modificar
  4.    if (n1 == 0 && n2 != 0)
  5.        {
  6.        return -1;
  7.        }
  8.    if  (n2 == 0 && n1 != 0)
  9.        {
  10.        return 1;
  11.        }
  12.    for(i=0;i<n1||i<n2;i++)
  13.        {
  14.        if(vector1[i]<vector2[i])
  15.            {
  16.            return -1;
  17.            }
  18.        if(vector1[i]>vector2[i])
  19.            {
  20.            return 1;
  21.            }
  22.        if(vector1[i]==vector2[i]&&n1==n2)
  23.            {
  24.            return 0;
  25.            }
  26.        }
  27.    return 0;
  28. }
5  Programación / Programación C/C++ / Re: [TUTORIAL]Compilar la librería Qt estáticamente bajo Windows. en: 20 Agosto 2016, 01:06
podrian actualizar este tutorial yo instalo qcreator ultima version y arranco pero no me reconoce la libreria xmpp. Porque es importante compilar las librerias estaticamente???

Hola, actualmente no dispongo de tiempo para actualizarlo, pero seguramente en la página Qt habrá muchísima información en inglés para hacerlo.

Un saludo.
6  Programación / Programación C/C++ / Re: (Consulta) Sobre la sobrecarga del operador & en: 31 Julio 2016, 13:53
Hola, sí se puede, pero sobrecargar el operador & para tal fin puede llevar a muchas confusiones. En la cabecera <memory> tienes la función genérica addressof (se agregó en C++11 para solucionar el problema que comentáis), que funciona de la misma manera que el operador unario &.

Te dejo la referencia http://en.cppreference.com/w/cpp/memory/addressof
7  Programación / Programación C/C++ / Re: Ayuda recursividad en: 28 Julio 2016, 12:46
Empecemos por lo más simple, si necesitas invertir una cadena ¿por qué declaras y defines la función pasando y devolviendo un único carácter?

Código
  1. ¿char? InversoSimplificado(¿char? c, int tam);

En todo caso sería:
Código
  1. char* InversoSimplificado(char* c, int tam);

Por otra parte:
Código
  1. return InversoSimplificado (c, tam-1) + ¿(c, 1)?;

¿Qué intentas hacer con lo que está entre interrogaciones?
8  Programación / Programación C/C++ / Re: Ayuda recursividad en: 28 Julio 2016, 11:53
¿Y qué llevas hecho?

Un saludo.
9  Programación / Programación C/C++ / Re: (Recomendación) Búsquedas en C++ en: 23 Julio 2016, 00:15
Aquí tienes información de un montón de algoritmos de búsqueda:

https://en.wikipedia.org/wiki/List_of_algorithms#Graph_search

En concreto:

En profundidad              -> https://en.wikipedia.org/wiki/Depth-first_search
En anchura o amplitud   -> https://en.wikipedia.org/wiki/Breadth-first_search

En las referencias hay libros que te pueden ayudar.

Este por ejemplo:

Artificial Intelligence: A Modern Approach. Prentice Hall, 2003.

Este que esta en español también te puede ayudar:

Inteligencia artificial: métodos, técnicas y aplicaciones. McGraw-Hill, 2008.

Los pdf los puedes encontrar fácilmente por internet.

El lenguaje en sí es lo de menos ya que lo que importa son las estructuras de datos que haya detrás. En C++ lo más de lo más en cuanto a una complejidad temporal mínima son los diccionarios desordenados (unordered_map). Por otra parte los maps están implementados como Árboles Rojos y Negros. La idea es que tienes que comprender las estructuras de datos subyacentes.

Un saludo.
10  Programación / Programación C/C++ / Re: Aplicacion ios/android, deteccion wifis en: 7 Julio 2016, 09:04
El primero solo es para web, el segundo no lo conozco pero segun veo parece ser lo mismo.

Lo que este usuario busca es acceso de completo a la api de cada sistema para manipular el wifi.

Saludos

Hay plugins para cordova que te permiten manejar el Wifi:

https://github.com/parsonsmatt/WifiWizard

por ejemplo.

Un saludo.
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 83
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines