Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: nolasco281 en 2 Febrero 2014, 10:38 am



Título: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: nolasco281 en 2 Febrero 2014, 10:38 am
Hola la duda que me trae el día de hoy es se pueden hacer hipervínculos pero en consola

Es decir que me aparezca Google como hipervínculo. Y al darle click me lleve a la página.

saludos investigando.


Título: Re: hiperbinculos en consola de C++
Publicado por: vangodp en 2 Febrero 2014, 13:50 pm
Creo que para eso deberías usar una librería como ncurses o algo por estilo.
La verdad no tengo ni idea.
Buena pregunta  ;-)


Título: Re: hiperbinculos en consola de C++
Publicado por: ivancea96 en 2 Febrero 2014, 18:31 pm
Que yo sepa, en la consola de por si, no se puede.
Podrías simular la consola con una librería gráfica, o windows.h, o buscar la forma.


Título: Re: hiperbinculos en consola de C++
Publicado por: nolasco281 en 2 Febrero 2014, 22:35 pm
Gracias a los dos por responder todavía ando buscando, la duda me entro trabajando en Linux al instalar repositorios y que en la consola salen hipervínculos, así que eso estoy intentandolo. Saludos pongo la solución si la encuentro.


Título: Re: hiperbinculos en consola de C++
Publicado por: vangodp en 3 Febrero 2014, 00:29 am
la consola de linux es que es una súper consola 
:laugh:


Título: Re: hiperbinculos en consola de C++
Publicado por: nolasco281 en 3 Febrero 2014, 05:01 am
Hola ya casi, he encontrado esto y me lleva a la dirección.

Código
  1. #include <windows.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5. int main()
  6. {  
  7. system("start www.google.com");
  8. system("pause");
  9. return 0;
  10. }

Hola solo quiero pregunta si a alguien se le ocurre que me salga google y que me detecte el click del mouse, que me lleve a la dirección

PD: es una lastima que casi no se encuentre ayuda en español pero en lo que pueda aportar aca estoy.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: dato000 en 3 Febrero 2014, 15:39 pm
Para poder usar el mouse tienes que implementar el uso de una libreria que habilite el uso y control de eventos de dispositivos de entrada como el mouse, y además tienes que usar un entorno grafico que permita el control de posiciones en donde puedas controlar el objeto o estructura donde vas a colocar el link.

Por ello lo más indicado es usar una libreria más especializada como SDL o SFML, que si tienen ese tipo de funciones, con las librerias estandar tanto de linux como windows no es posible hacer eso, por eso mismo es que se crearon las librerias que mencione.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: nolasco281 en 3 Febrero 2014, 20:30 pm
Gracias dato000 a investigar, lo que me has comentado saludos y gracias a todos por responder.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: x64core en 4 Febrero 2014, 02:46 am
O podes usar Win32 para simular lo que quieres.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: dato000 en 4 Febrero 2014, 14:07 pm
O podes usar Win32 para simular lo que quieres.

Eso ya seria usar Visual C++, que es totalmente diferente a usar C/C++ puro. Ya teniendo las herramientas Visual Studio, yo recomendaría más C#, mucho más practico.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: x64core en 4 Febrero 2014, 16:19 pm
Eso ya seria usar Visual C++, que es totalmente diferente a usar C/C++ puro. Ya teniendo las herramientas Visual Studio, yo recomendaría más C#, mucho más practico.
Usar Win32 no tiene nada que ver respecto al compilar Visual C++, esto se puede hacer en MingW,Intel,etc. :silbar:
Además ¿adonde crees que terminan llamando esas librerias que mencionaste en Windows? -> Win32


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: dato000 en 5 Febrero 2014, 13:49 pm
demuestralo


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: eferion en 5 Febrero 2014, 14:36 pm
demuestralo

Es fácil, las librerías SDL, por ejemplo, tienen una versión para linux, otra para windows, otra para mac... por que?? si la máquina sobre la que corre el código puede hasta ser la misma...

básicamente porque al final acaba llamando a funciones o servicios propios del sistema operativo.

En Windows este catálogo de servicios esta ubicado en la api Win32.

Por ejemplo, si tu con SDL creas una ventana... por dónde pasa eso?? el gestor de ventanas forma parte de la api de windows y todos, absolutamente todos los controles gráficos que aparecen en una ventana de windows tienen que pasar por esa api para funcionar. Al final la SDL acabará, tarde o temprano, llamando a la función CreateWindowEx de WinApi.

Es esa api la que proporciona el control de eventos, por ejemplo.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: ivancea96 en 5 Febrero 2014, 15:06 pm
Recuérdese que "Visual" Studio, "Visual" C++, y todos esos, no son mágicos. Usan librerías como todos, y se compilan de forma parecida. El cambio, es que te da un entorno gráfico para que te sea más fácil.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: dato000 en 5 Febrero 2014, 17:31 pm
Es fácil, las librerías SDL, por ejemplo, tienen una versión para linux, otra para windows, otra para mac... por que?? si la máquina sobre la que corre el código puede hasta ser la misma...

básicamente porque al final acaba llamando a funciones o servicios propios del sistema operativo.

En Windows este catálogo de servicios esta ubicado en la api Win32.

Por ejemplo, si tu con SDL creas una ventana... por dónde pasa eso?? el gestor de ventanas forma parte de la api de windows y todos, absolutamente todos los controles gráficos que aparecen en una ventana de windows tienen que pasar por esa api para funcionar. Al final la SDL acabará, tarde o temprano, llamando a la función CreateWindowEx de WinApi.

Es esa api la que proporciona el control de eventos, por ejemplo.

WAT???? no, no no, eso no trabaja así, SDL es multiplataforma, quien realiza el trabajo de construcción grafica es el compilador, no la API como mencionas, así es como funciona su portabilidad.

WinAPI puede ser considerada como otra libreria totalmente independiente de desarrollo para graficos, pero solo funciona para windows, como conio.h, pero no puede ser comparada en lo más remoto a SDL.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: eferion en 5 Febrero 2014, 17:39 pm
WAT???? no, no no, eso no trabaja así, SDL es multiplataforma, quien realiza el trabajo de construcción grafica es el compilador, no la API como mencionas, así es como funciona su portabilidad.

WinAPI puede ser considerada como otra libreria totalmente independiente de desarrollo para graficos, pero solo funciona para windows, como conio.h, pero no puede ser comparada en lo más remoto a SDL.

Es multiplataforma si.... pero ya te digo yo que la librería compilada en linux no funciona en windows y viceversa.... motivo??

lo que he comentado, que al final se acaba apoyando de una forma o de otra en APIs específicas del sistema operativo.

Que es multiplataforma quiere decir que si con el código X generas una escena con SDL, dicho código te va a servir para compilar un programa tanto en Windows como en Linux que van a funcionar exactamente igual, sin tocar nada de código. Es como Qt... es multiplataforma... ahora si te adentras en sus entrañas descubres que tiene multitud de ifdef para separar las llamadas a la API de windows de las propias para Linux...

Si es que es muy sencillo... SDL permite crear ventanas... pero en Windows, la única entidad que proporciona acceso a esa capa es la API de Windows... o pasas por ahí o pasas por ahí, no tienes elección... otra cosa es que te programes una capa que se ponga encima y te permita abstraerte de la programación directa de la API, que dicho sea de paso es un coñazo.


Título: Re: hiperbinculos en consola de C++ (casi solucionado)
Publicado por: x64core en 5 Febrero 2014, 18:19 pm
WAT???? no, no no, eso no trabaja así, SDL es multiplataforma, quien realiza el trabajo de construcción grafica es el compilador, no la API como mencionas, así es como funciona su portabilidad.

WinAPI puede ser considerada como otra libreria totalmente independiente de desarrollo para graficos, pero solo funciona para windows, como conio.h, pero no puede ser comparada en lo más remoto a SDL.
No, el que no sabe como funcionan sos vos, la libreria es multiplataforma a nivel de código.
Para demostrarlo, descarga la libreria para Windows y luego la abris con un editor PE y vas a comprobar que hace importaciones de las
funciones nativas de Windows. todas las librerias que he visto son sólo wrappers hacia la Win32. para que una libreria no llame a la
Win32 deberia tener su propio subsistema y servicios ¿porqué reinventar algo que ya esta hecho? eso es ridiculo. joven chico has
aprendido algo el dia de ahora

Recuérdese que "Visual" Studio, "Visual" C++, y todos esos, no son mágicos. Usan librerías como todos, y se compilan de forma parecida. El cambio, es que te da un entorno gráfico para que te sea más fácil.

Visual studio es el IDE, Visual C++ es el compilador. el entorno grafico es gracias a Visual Studio no Visual C++ no hay forma de
compararlos.