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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 66
81  Programación / Programación C/C++ / Re: Abrir video con C++ en: 28 Enero 2015, 21:18 pm
Hola, WinExec creo que seria lo que buscas:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms687393%28v=vs.85%29.aspx

llamas a "c:/program files/.........vlc/vlc.exe   nombredearchivo.mp4"

Saludos.
82  Programación / Programación C/C++ / Re: [Consulta] ¿Se desaprueba este código?. en: 28 Enero 2015, 20:20 pm
Destabilizar el codigo?

Esa afirmacion es bastante confusa.

Si con codigo estable se refiere a codigo que produce ejecutables estables... entonces goto no seria un problema alli siemper y cuando la ejecutable sea estable.

Ahora, si tienes algo asi:
Código:
if(blablabla())
   goto ALGUN_LUGAR_MUY_LEJANO_DE_AQUI;
/*
5.000 lineas de codigo mas abajo:
ALGUN_LUGAR_MUY_LEJANO_DE_AQUI:

Eso si seria molesto. Extremadamente molesto. Muy extremadamente molesto. Demasiado extremadamente molesto.

Si el goto salta 2,3 lineas... para que?  Si con sentencias de control tranquilamente se puede generar el mismo resultado.

No se me ocurre ningun caso donde un goto sea util. Es mas te digo, cuando se programa en ensamblador normalmente se utilizan saltos condicionales: jz, jnz, je, jne, etc...  Tranquilamente se puede programar evitando usar un salto incondicional (JMP) que seria el goto.

Es mas, el programa que usa goto esta desperdiciando bytes...
si pones algo como:
Código:
if(algo())
  goto ALGO;
estarias haciendo  algo asi:
Código:
   call algo
   test eax, eax
   jnz NEXT:
   JMP ALGO
NEXT:
   ;salida next

Mientras sin el goto, seria simplemente:
Código:
if(algo())
   algo2();
seria algo como
Código:
   call algo
   test eax, eax
   jnz NEXT
   call algo2
NEXT:

un JMP innecesario menos y no hay que volver a la prehistoria.


Citar
ya que puede darse el caso que instrucciones nunca se lleguen a ejecutar
eso no seria culpa del goto.
Código:
if(1==2){
codigo_que_nunca_se_va_a_ejecutar();
}

Saludos.


PD: una consulta...

Que pasa con C++,  destructores y goto?
Código:
{
   MYCLASS my_class; //se llamo al constructor
   goto AVOID_DESTRUCTOR
} //<< aqui la runtime llamaria al destructor del objeto my_class
AVOID_DESTRUCTOR:
O sea, lo entiendo bien? al usar un goto y salirse del scope, el destructor nunca seria llamado?

Acabo de hacer la prueba y el destructor es llamado... raro?
Código:
#include <iostream>
using namespace std;
 


class CClass {
public:
    ~CClass(){
        cout << "destructor" << endl;;
    }
    CClass(){
        cout << "constructor" << endl;
    }
};

 
int main(int argc, char *argv[]) {
    
    {
        CClass test;
        goto AVOID;
        
    }
AVOID:
    int i;
    cin >> i;
    return 0;
}
83  Programación / Programación C/C++ / Re: Problema al compilar en: 27 Enero 2015, 20:22 pm
Pero me extraña que te diga que te falte una librería dinamica XArray.dll en tiempo de compilacion. No será la ejecutable que te dice eso?

La dll debería estar junto a la ejecutable o en la carpeta del sistema.

Puedes hacer un copy-past del error que te tira el compilador?
(A lo sumo te está faltanda instalar la runtime de la librería que estas utilizando?)
Saludos.
84  Programación / Programación C/C++ / Re: Codigo en C para saltar lineas en: 27 Enero 2015, 16:37 pm
Hola:
fopen, fprint, fclose;

http://www.tutorialspoint.com/c_standard_library/c_function_fopen.htm


Saludos.
85  Programación / Programación C/C++ / Re: Problema al compilar en: 27 Enero 2015, 16:35 pm
Tambien tal vez tengas que vincular el SDK que uses en opciones del compilador.

Saludos.
86  Programación / Programación C/C++ / Re: Crear proceso con nombre basado en cmd en: 17 Enero 2015, 15:42 pm
El .bat ejecuta a RustDedicated.exe... ese es el nombre de proceso que deberías ver si está abierto creo.


Otra alternativa es usar en el .bat siguiente linea al principio
Código:
title titulo_de_la_ventana


De esa manera en vez de decir:  c:/WINDOWS/system32..... va a decir:
titulo_de_la_ventana

Luego usas algo como FindWindow y GetWindowText de la winapi para buscar una ventana con ese titutlo.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx

Saludos.
87  Sistemas Operativos / Windows / Re: pantallazo azul de windows en: 16 Enero 2015, 16:40 pm
Y si inicias XP en modo seguro? con la minima cantidad de drivers posibles?
Con suerte el driver ese no se carga, vas a restaurar sistema o desinstalas el driver molesto.

Saludos.
88  Programación / Programación C/C++ / Re: Segmentation Fault C++ en: 15 Enero 2015, 18:15 pm
De nada :)

No tenia el visual studio a mano que posee un decente depurador (dev c++... como que es la pobreza) asi que no salto a la vista depurando  :D
Con Visual Studio creo que hubiera sido mas facil encontarlo.
89  Programación / Programación C/C++ / Re: Segmentation Fault C++ en: 15 Enero 2015, 18:02 pm
Código
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. using namespace std;
  5.  
  6.  
  7. class Nieta {
  8. string nom;
  9. int edad;
  10. public:
  11. Nieta(void) {
  12. nom = "nieta"; edad = 0;
  13. }
  14. Nieta(const string Nombre, const int Edad) {
  15. nom = Nombre; edad = Edad;
  16. }
  17. string MostrarNombre(void) {
  18. return nom;
  19. }
  20. };
  21.  
  22. class Hija {
  23. string nom;
  24. int edad;
  25. vector<Nieta> v_Nietas;
  26. public:
  27.    string MostrarNombre(){
  28.        return nom;
  29.    }
  30. Hija(void) {
  31. nom = "hija"; edad = 0; v_Nietas.clear();
  32. }
  33. Hija(const string Nombre, const int Edad) : nom(Nombre), edad(Edad) {
  34. v_Nietas.clear();
  35. }
  36. void AgregarNieta(const Nieta UnaNieta) {
  37. v_Nietas.push_back(UnaNieta);
  38. }
  39. Nieta& MostrarNieta(const int Indice) {
  40. return v_Nietas[Indice];
  41. }
  42.  
  43. };
  44.  
  45. class Madre {
  46. string nom;
  47. int edad;
  48. vector<Hija> v_Hijas;
  49. public:
  50. Madre(void) {
  51. nom = "madre"; edad = 0; v_Hijas.clear();
  52. }
  53. Madre(const string Nombre, const int Edad) : nom(Nombre), edad(Edad) {
  54. v_Hijas.clear();
  55. }
  56. bool AgregarHija(const Hija UnaHija) {
  57. unsigned int tam = v_Hijas.size();
  58. v_Hijas.push_back(UnaHija);
  59. return (tam == v_Hijas.size())?true:false;
  60. }
  61. Hija& MostrarHija(const int Indice) {
  62. return v_Hijas[Indice];
  63. }
  64. };
  65.  
  66.  
  67.  
  68. int main(int argc, char *argv[]) {
  69. vector<Madre> global_madres;
  70. global_madres.push_back(Madre());
  71. global_madres[0].AgregarHija(Hija());
  72. global_madres[0].MostrarHija(0).AgregarNieta(Nieta());
  73. cout << global_madres[0].MostrarHija(0).MostrarNombre() << endl;
  74.    cout<<global_madres[0].MostrarHija(0).MostrarNieta(0).MostrarNombre()<<endl; //KABOOM, acá explota :(
  75. int i;
  76. cin >> i;
  77.    return 0;
  78. }
  79.  

Basicamente esta fue la modificacion
Código
  1. Hija &MostrarHija(const int&Indice) {
  2. return v_Hijas[Indice];
  3. }
  4.  

Necesitas retornar una referencia al objeto y no el objeto de por si porque hacec
Citar
MostrarHija(0).MostrarNieta(0).MostrarNombre()

Saludos.
90  Programación / Programación C/C++ / Re: Segmentation Fault C++ en: 15 Enero 2015, 16:25 pm
Me parece que tienes un problema de herencia con datos privados.

Clase nieta debería ser friend de clase mayor, o pasar los datos de la herencia como protected y no private.

Eso es una posibilidad, no te sabría decir bien, sería mas facil sabiendo como está construidas las tres clases.

O bien
Código:
cout<<v_Mayor[v_Mayor.size()-1].RetornaNieta(0).MostrameDatos()<<endl;

Deberia de ser algo como
Código:
cout<<v_Mayor[v_Mayor.size()-1].v_Hija[x].RetornaNieta(0).MostrameDatos()<<endl;


Recuerda que tambien para simplificar el nesting de vectores puedes tener un vector de la propia clase
Código:
class CHIJA{
public:
   ...
private:
   vector<CHIJA> contenido;
};
Saludos.
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 66
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines