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


 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Herramientas para C++. Librería MiniHack 1.0
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Herramientas para C++. Librería MiniHack 1.0  (Leído 2,057 veces)
cin.get();

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Herramientas para C++. Librería MiniHack 1.0
« en: 9 Julio 2013, 23:03 »


Versión 1.0

Minihack es una mini-librería para el desarrollo de software en C++. Su objetivo principal es brindar nuevas y mejores herramientas para el desarrollo de aplicaciones que funcionan desde terminal (sin entorno gráfico), además de intentar obtener un código multiplataforma, por lo que si escribes un programa para Linux con esta librería funcionará de la misma manera en Windows o cualquier otro sistema.

Descargar:
MiniHack 1.0

Características
Minihack se basa principalmente en las siguientes características:

Claridad. Existen gran cantidad de utilidades para ayudar a el desarrollo de software, la mayoría de estos paquetes ayudan a facilitar el desarrollo de algunas funciones, pero el código queda algo extenso y difícil de entender. Minihack intenta obtener las mejores funciones con la mayor simplicidad y funcionalidad.

Eficiencia. Otro punto importante a tomar en cuenta es la eficiencia, no sólo lograr que el software haga lo que se quiere si no también que el desarrollo del mismo sea en el menor tiempo.

Portabilidad. Para un desarrollador resulta más fácil crear un programa multiplataforma, que ese mismo código que escribe para Linux sirva para los demás sistemas, cosa que minihack domina, el código escrito funciona muy bien en diferentes sistemas.

Velocidad. Cuando nos referimos a velocidad, no sólo es en el desarrollo del programa, si no que el ejecutable funcione a una buena velocidad y de manera estable.

¿Cómo funciona?
Para pintar en la ventana hay que utilizar las acciones Draw, luego invocamos Window.Refresh(). Todo lo que se pinta primero se almacena en un buffer y posteriormente con la acción Window.Refresh() se hace visible en la ventana lo que se haya pintado. La ventaja principal es que si se desean pintar varias cosas solo es necesario refrescar una vez, y con esto se mejora la velocidad del programa.

Funciones
A continuación se explica el objetivo de cada función que integra minihack en sus diferentes clases.

Nota: para usar alguna función el comando debe llevar la siguiente estructura: Clase.Comando();

Window
En esta clase se encuentra todo lo relacionado con lo visible en pantalla.

bool Dirty()
Regresa un valor true o false indicando si la ventana está sucia.

void Clean()
Limpia el bufer en donde se almacena lo pintado.

void Refresh()
Muestra en pantalla el contenido del bufer.

int RetWide()
Regresa un valor indicando lo ancho de la pantalla.

int RetHeight()
Regresa un valor indicando lo alto de la pantalla.

void DrawPoint(int x, int y)
Pinta un punto en pantalla.

void DrawText(int x, int y, string text)
Pinta un texto en pantalla.

void DrawCharacter(int x, int y, char chr)
Pinta una letra en pantalla.

Sleep
Clase con funciones para detener el programa un cierto tiempo.

void Seg(int seg)
Detiene el programa una cantidad de segundos.

void Micro(int micro)
Detiene el programa una cantidad de microsegundos.

Rand
Clase con funciones para dar valores aleatorios.

void NewSeed()
Cambia la semilla de valores aleatorios.

int GetRandom(int min, int max)
Regresa un valor aleatorio entre un número mínimo y un máximo.

Key
Clase con funciones para detectar lo que sucede en el teclado.

bool Press()
Regresa un valor true o false indicando si se ha presionado una tecla.

int Get()
Lee la tecla presionada sin necesidad de presionar enter o pausar el programa.

Nota: si el contenido en ventana no se muestra de la forma correcta, deberás cambiar en la librería minihack los valores ancho y alto que representan el tamaño de la ventana.


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #1 en: 10 Julio 2013, 12:37 »

Buen trabajo ^^

Sigue ahí, asi es como empezaron las librerías famosas de ahora  ;)


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #2 en: 10 Julio 2013, 12:47 »

Nota: si el contenido en ventana no se muestra de la forma correcta, deberás cambiar en la librería minihack los valores ancho y alto que representan el tamaño de la ventana.

Es demasiado complicado poder sacar en multiplataforma las resoluciones disponibles para el monitor que se esté usando??

Se supone que si haces una aplicación la idea es que se vea bien en cualquier equipo, si no eres capaz de sacar las resoluciones sabrás que tu aplicación se ve bien en tu máquina, pero en el resto...
En línea

cin.get();

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #3 en: 10 Julio 2013, 14:30 »

Es demasiado complicado poder sacar en multiplataforma las resoluciones disponibles para el monitor que se esté usando??

Se supone que si haces una aplicación la idea es que se vea bien en cualquier equipo, si no eres capaz de sacar las resoluciones sabrás que tu aplicación se ve bien en tu máquina, pero en el resto...
no es tanto la resolución del monitor, si no mas bien el tamaño de la terminal en linux o cmd en windows, por lo que no he encontrado la forma de saber el tamaño de cada una con un mismo comando para ambas plataformas, he tenido el mismo problema con los colores. creo que lo mejor seria sacar una versión para windows y otra para linux, cada una con sus diferentes códigos pero que la librería logre hacer lo mismo en ambos sistemas
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #4 en: 10 Julio 2013, 14:47 »

Yo creo que sí es posible sacar una metodología común y abstraer al usuario de la arquitectura que hay por debajo.

Tu piensa que hacer un sistema multiplataforma no siempre va a ser encontrar dos funciones que hacen lo mismo, con los mismos parámetros y preparar un wrapper para encapsularlo... la multiplataforma es generalmente más complicada y exige un estudio mayor.
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #5 en: 10 Julio 2013, 14:48 »

creo que lo mejor seria sacar una versión para windows y otra para linux, cada una con sus diferentes códigos pero que la librería logre hacer lo mismo en ambos sistemas
¿Sabes lo que es la compilación condicional?

Te hago un ejemplo (limpiando la consola):

Código
  1. void Limpiar()
  2. {
  3.  #ifdef _WIN32
  4.      system("CLS"); // Windows version
  5.  #else
  6.      system("clear"); // Linux version
  7.  #endif
  8.  
  9. }

Si estamos en un Windows, el compilador cogerá la primera expresión. Si no estamos en un Windows cogerá la segunda expresión.

Puedes consulta la lista entera de macros aquí:
http://sourceforge.net/p/predef/wiki/OperatingSystems/
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
cin.get();

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #6 en: 10 Julio 2013, 15:59 »

Yo creo que sí es posible sacar una metodología común y abstraer al usuario de la arquitectura que hay por debajo.

Tu piensa que hacer un sistema multiplataforma no siempre va a ser encontrar dos funciones que hacen lo mismo, con los mismos parámetros y preparar un wrapper para encapsularlo... la multiplataforma es generalmente más complicada y exige un estudio mayor.
Pues seguiré buscando, aunque me he dado cuenta que para esto de multiplataforma, más que buscar funciones TU las tienes que hacer xD
En línea

cin.get();

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #7 en: 10 Julio 2013, 16:00 »

¿Sabes lo que es la compilación condicional?

Te hago un ejemplo (limpiando la consola):

Código
  1. void Limpiar()
  2. {
  3.  #ifdef _WIN32
  4.      system("CLS"); // Windows version
  5.  #else
  6.      system("clear"); // Linux version
  7.  #endif
  8.  
  9. }

Si estamos en un Windows, el compilador cogerá la primera expresión. Si no estamos en un Windows cogerá la segunda expresión.

Puedes consulta la lista entera de macros aquí:
http://sourceforge.net/p/predef/wiki/OperatingSystems/


ooo, no sabía sobre la compilación condicional, me ayudará muchísimo tu ejemplo, muchas gracias. saludos!
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #8 en: 10 Julio 2013, 16:28 »

ooo, no sabía sobre la compilación condicional, me ayudará muchísimo tu ejemplo, muchas gracias. saludos!

Y entonces como estabas haciendo la librería portable??
En línea

cin.get();

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: Herramientas para C++. Librería MiniHack 1.0
« Respuesta #9 en: 10 Julio 2013, 17:10 »

Y entonces como estabas haciendo la librería portable??
usando funciones estándar pero ahora me doy cuenta de que no existen para cualquier cosa, y para las que no existen lo haré como me dicen ;)
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Algo de hackeo y herramientas de hack para mac no solo para windows
Sugerencias y dudas sobre el Foro
nuch 1 6,660 Último mensaje 26 Agosto 2007, 19:15
por T0rete
que libreria uso para el api del msn
Programación Visual Basic
pana88 2 1,034 Último mensaje 6 Febrero 2008, 23:20
por pana88
Libreria c++ para red
Programación C/C++
darkvidhack 2 4,884 Último mensaje 7 Agosto 2011, 18:42
por bash
libreria de voz para C?
Programación C/C++
dutz 1 1,091 Último mensaje 28 Julio 2012, 23:40
por Queta
Microsoft lanza varias herramientas gratuitas para desarrollar apps para Windows
Noticias
wolfbcn 0 1,084 Último mensaje 4 Diciembre 2012, 18:40
por wolfbcn
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines