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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 ... 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [83] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ... 401
821  Programación / Programación General / Re: Lenguaje para desarrollar escenas o juegos 3D en: 11 Enero 2017, 22:48 pm
VB.NET es una porquería y no se lo recomiendo a nadie.
En primer lugar, ningún lenguaje se merece tales palabras, y menos, en un foro de programación.

Así que imagino que a través de Unity podría usar C# para programar. Lo claro no tengo ahora mismo ni idea de como se une escena y programación, con Unity y C#

Efectivamente, Unity se puede programar en C#, y es bastante simple. Si lo que buscas es una manera de hacer interactuar rápidamente elementos 3D con programación, Unity es una posibilidad. Además, tiene una comunidad muy amplia y un montón de ejemplos por ahí con los que no tendrás problema en empezar.


Sobre OpenGL, DirectX, Vulkan: son API que te proporcionan todo lo necesario para 3D (entre otras muchas cosas). Pero son de bajo nivel: tendrás que ver muchas cosas antes de empezar a hacer algo productivo. Si tu idea es pasar rápido a la acción, no son una opción. Si tu idea es dedicarte a algo relacionado con 3D (orientado a programación, no a diseño), ya sea como oficio o como hobby, es un tema importante.


Otra opción, por comentarla, es UnrealEngine, en C++ actualmente. Aunque si la idea es jugar con escenas, me parece un engine demasiado "tedioso" para ello.
822  Programación / Programación General / Re: Elección de lenguaje de programación para un sistema. en: 11 Enero 2017, 17:09 pm
En cuanto a aplicaciones empresariales, C# es una buena elección. Tiene formularios sencillos y muchas facilidades.
823  Programación / Programación C/C++ / Re: Problema al ingresar al directorio Raíz del disco C: con codigo en: 11 Enero 2017, 16:20 pm
Como detalle, el problema que tuviste es que "system()" ejecuta el comando como si fuera otro programa. Cuando se termina el system, el directorio vuelve a ser elque era (en tu programa, no cambió realmente)
824  Programación / Programación C/C++ / Re: [AYUDA] Dos dudas para mostrar por pantalla en: 10 Enero 2017, 17:30 pm
La clase ofstream escribe la representación, no el binario.

Haz una cosa. Pon al lado de la línea, esta otra:
Código
  1. fichs << fila[i] << endl;
  2. cout << fila[i] << endl;

Y a ver qué muestra por pantalla. es posible que el error venga de antes.
825  Programación / Programación C/C++ / Re: [AYUDA] Dos dudas para mostrar por pantalla en: 9 Enero 2017, 22:18 pm
Después del "fichs.open(msg);", prueba a poner:
Código
  1. if(!fichs.is_open()){
  2.    cout << "Error" << endl;
  3. }

¿El fichero se crea? ¿Tiene algún contenido?
826  Programación / Programación C/C++ / Re: [AYUDA] Dos dudas para mostrar por pantalla en: 9 Enero 2017, 20:46 pm
El resultado es el que buscas imagino, así que sí.
827  Programación / Programación C/C++ / Re: [AYUDA] Dos dudas para mostrar por pantalla en: 8 Enero 2017, 22:05 pm
Oh, el: material = " ";
No puedes asignar una cadena como esa (char*) a un int. Además, un cout d eun int siempre va a escribir un número; no hay ningún número "vacío".
Tendrás que poner 2 cout, uno en el if y otro en el else, por ejemplo.

Y como detalle, cuando tengas dudas así, pon por aquí el error y su línea. El error tal cual te lo pone el compilador.
828  Programación / Programación C/C++ / Re: Problema con herencia múltiple[C++][?] en: 8 Enero 2017, 18:57 pm
Para convertir un puntero a un objeto de una clase a otra clase, tienes 3 casts posibles:
  • static_cast: En el momento de compilar, comprueba si lo puede convertir. En tu caso, estás convirtiendo un A* a un B*. Como A* no hereda de B*, dará error. (Aunque sea un AB*, es una variable A* lo que estás convirtiendo a B*)
  • dynamic_cast: En vez de comprobar a la hora de compilar, lo hace mientras se ejecuta. Este va a comprobar si se puede hacer el cast, y si no se puede, lanzará una excepción (En este caso se puede, y no tendrás problema).
  • reinterpret_cast: Este cast no hace comprobaciones. Se limita a tratar la secuencia de bytes del objeto como si de otro objeto se tratase. En este caso, eso no es suficiente, y por eso falla.

Aquí, tu opción es dynamic_cast. Otra opción (bastante mejor a mi parecer), es utilizar un objeto AB*:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class A{
  5. public:
  6.    virtual void opA() = 0;
  7. };
  8.  
  9. class B{
  10. public:
  11.    virtual void opB() = 0;
  12. };
  13.  
  14. class AB: public A, public B{
  15. public:
  16.    void opA(){
  17.        cout<<"Operacion A"<<endl;
  18.    }
  19.    void opB(){
  20.        cout<<"Operacion B"<<endl;
  21.    }
  22. };
  23.  
  24.  
  25. int main(){
  26.    AB* ab = new AB();
  27.    A* variableA = ab;
  28.    B* variableB = ab;
  29.  
  30.    variableA->opA();
  31.    variableB->opB();
  32.  
  33.    delete ab;
  34.    return 0;
  35. }

No necesitarás hacer casts (el cast implícito funciona correctamente en este caso), y además tendrás la certeza de que los tipos son siempre válidos.

En tu ejemplo, estás convirtiendo un A* a un B*. Viendo el código, sabemos que eso funciona, pero no es realmente válido, pues esas clases no tienen relación.

Este último método es preferible ante el dynamic_cast porque te dará error en tiempo de compilación (preferible a una excepción), y la transformación es más rápida (dynamic_cast hace comprobaciones que podemos obviar).

Cuidado con reinterpret_cast a la hora de trabajar con clases. Mejor evitarlo, especialmente cuando se utiliza herencia múltiple.
Un caso de uso de reinterpret_cast podría ser:
Código
  1. int n = 456;
  2. char* bytesDeN = reinterpret_cast<char*>(&n);


EDITO: Y sobre el por qué hace lo que dices, pues: reinterpret_cast en ese caso no hará un cast correcto, y el comportamiento será indefinido. Probablemente, como opA es la primera función, B la coja como si fuera opB. En cualquier caso, este comportamiento es indefinido y no es relevante. Simplemente, debe evitarse.
829  Programación / Scripting / Re: ¿Les dais uso a las property en Python? en: 8 Enero 2017, 01:33 am
Esta misma utilidad está también en toros lenguajes, como C#.

No es obligatorio usarlo, pero es útil en múltiples casos. Además, permite un código más "legible" (aunque esto sea subjetivo), si bien hace el código un poco "oscuro", pues ese atributo realmente está haciendo"algo" por detrás.

Ejemplo:
¿Qué es más legible?
Código
  1. x.value = x.value + 5
o
Código
  1. x.setValue(x.getValue() + 5)
830  Programación / Programación C/C++ / Re: [AYUDA] Dos dudas para mostrar por pantalla en: 7 Enero 2017, 21:43 pm
Tal vez quisieras poner:
Código
  1. void mostrar(){
  2.  int i, material;
  3.  for (i = 0; i<10; i++){ // Condición para romper el bucle: que i no sea menor que 10
  4.      material = tam[i]; // Aquí asignas la variable
  5.      if (material == 0){
  6.          material = " ";
  7.      }
  8.      cout <<"|" <<material <<"|";
  9.  }
  10.  cout <<endl;
  11. }
Páginas: 1 ... 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [83] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ... 401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines