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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15
91  Programación / Programación C/C++ / Re: Pregunta sobre variable integer en: 19 Mayo 2015, 21:43 pm
El tamaño de una variable de tipo int en memoria depende de cada compilador. Por ejemplo, Las variables de tipo short en mingw me parece que ocupaban 4 bytes, y en el compilador de VS2013 ocupaban 2 bytes (o al revés, no me acuerdo).

Para saber el tamaño de las variables de un cierto tipo, usas algo que se parece a una función: sizeof(tipo o variable) (aunque en realidad no es una función)

Por ejemplo:
Código
  1. #include <iostream>
  2.  
  3. int main() {
  4. long long variable = 0;
  5.  
  6. std::cout << "El tipo de variable 'int' ocupa " << sizeof(int) << " bytes" << std::endl;
  7. std::cout << "La variable 'variable' ocupa en memoria RAM " << sizeof(variable) << " bytes" << std::endl;
  8.  
  9. std::cin.get();
  10. return 0;
  11. }

El resultado saldría (programa compilado en el compilador del VisualStudio 2013):
Código
  1. El tipo de variable 'int' ocupa 4 bytes
  2. La variable 'variable' ocupa en memoria RAM 8 bytes

A la pregunta que inicialmente se ha preguntado en este "post", no, la variable no se convierte automáticamente en tiempo de ejecución cuando se llena. Lo que hace es castearse. Esto quiere decir que si tu representas el número grande como 01001001001100100001001010101101101100001010010101001010010, y lo intentas guardar en una variable de tamaño 4 bytes (32 bits) (y la de antes ocuparía mas de 2 bytes),  entonces se tomarían los primeros 32 ceros y unos y se les asignaría la memoria: 01001001001100100001001010101101101100001010010101001010010

Lo que está en negrita son los primeros 32 estados, y el resto es información que se pierde. Entonces, es como si asignáramos a la variable el valor 101101101100001010010101001010010 en decimal.

Espero que se entienda :P
92  Programación / Programación C/C++ / Re: (Ayuda) Error al cargar BMP en: 18 Mayo 2015, 15:04 pm
No, o no habias recompilado o estas ejecutando manualmente una version antigua (compilaste relase x64 y ejecutaste debug x86 por ejemplo) o vaya uno a saber.

A saber xD

Pero juraría no haber hecho nada, y no tengo versiones antiguas. tampoco recompilé xD
93  Programación / Programación C/C++ / Re: Porque No Me Deja Crear El File(OPCION 3) AYUDA!!! en: 18 Mayo 2015, 03:18 am
Si tienes más dudas, no dudes (XD) en preguntar!
94  Programación / Programación C/C++ / Re: Porque No Me Deja Crear El File(OPCION 3) AYUDA!!! en: 18 Mayo 2015, 02:26 am
Yo he probado con este código, y funciona:

Código
  1. cout << "\nEnter New Costumer Name: ";
  2. cin.ignore(); // Esto es lo que añadí
  3. getline(cin, infoCost.name);
  4.  

Espero que te sirva :P
95  Programación / Programación C/C++ / (Ayuda) Error al cargar BMP en: 17 Mayo 2015, 22:34 pm
Hola, muy buenas a tod@s. Hoy tengo una duda sobre como cargar BMP en la RAM para pasarsela a OpenGL. Bueno, se podría decir que casi lo consigo, pero no!. Mejor vean por ustedes mismos el resultado, y a ver si alguien ve el error...

Código
  1. TEXTURE::TEXTURE(const char *path) {
  2. unsigned char header[54];
  3. unsigned int dataPos;
  4. unsigned int width, height, size;
  5. unsigned char *data;
  6. FILE *filePointer = fopen(path, "rb");
  7.  
  8. if(filePointer == NULL)
  9. printf_s("Error openning image file at '%s'!", path);
  10.  
  11. if(!fread(header, 1, 54, filePointer))
  12. printf_s("Error, file at '%s' isn't a real BMP file.", path);
  13.  
  14. if(header[0] != 'B' || header[1] != 'M')
  15. printf_s("Error, file at '%s' isn't a real BMP file.", path);
  16.  
  17. dataPos = *(int *)&header[0x0A];
  18. size    = *(int *)&header[0x22];
  19. width   = *(int *)&header[0x12];
  20. height  = *(int *)&header[0x16];
  21.  
  22. if(!size)
  23. size = width * height * 3;
  24.  
  25. if(!dataPos)
  26. dataPos = 54;
  27.  
  28. data = new unsigned char[size];
  29. fread(data, 1, size, filePointer);
  30.  
  31. fclose(filePointer);
  32.  
  33. glGenTextures(1, &texID);
  34.  
  35. glBindTexture(GL_TEXTURE_2D, texID);
  36.  
  37. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  38. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  39. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
  40.  
  41. glBindTexture(GL_TEXTURE_2D, 0);
  42. }

Resultado:


Imagen original:


Código del Vertex Shader:
Código
  1. #version 330 core
  2.  
  3. layout(location = 0) in vec4 position;
  4. layout(location = 1) in vec2 texCoords;
  5.  
  6. out DATA {
  7.    vec2 texCoords;
  8. } vs_out;
  9.  
  10. void main() {
  11.    gl_Position = position;
  12.  
  13.    vs_out.texCoords = texCoords;
  14. }

Código del Fragment Shader:
Código
  1. #version 330 core
  2.  
  3. layout(location = 0) out vec4 color;
  4.  
  5. in DATA {
  6.    vec2 texCoords;
  7. } fs_in;
  8.  
  9. uniform sampler2D sampler;
  10.  
  11. void main() {
  12.    color = texture(sampler, fs_in.texCoords);
  13. }
Espero que me puedan ayudar... ¡Gracias!



O esto es magia, o visual studio me está trolleando. Ahora si que funciona... Sinceramente, no se que pasaba...
96  Programación / Programación C/C++ / Re: (Ayuda) Un programa sencillo usando las librerías GLFW y GLEW crashea en: 14 Mayo 2015, 20:04 pm
Me respondo a mi mismo: "¡TIENES QUE INICIALIZAR GLEW, DESPISTADO!"

Nota, no he podido eliminar el tema
97  Programación / Programación C/C++ / (Solucionado) Un programa sencillo usando las librerías GLFW y GLEW crashea en: 14 Mayo 2015, 20:01 pm
Hola. Muy buenas a tod@s. Bueno, ya habiendo solucionado el problema con las dependencias, se me presenta otro problema: al ejecutar un programa compilado de un código sencillo, este crashea.

El código es el siguiente:

Código
  1. #include <iostream>
  2.  
  3. #include <GL/glew.h>
  4. #include <GLFW/glfw3.h>
  5.  
  6. static void errorCallback(int error, const char* description) {
  7. std::cout << description << ". Error core: " << error << std::endl;
  8. }
  9.  
  10. static void keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) {
  11. if(key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
  12. glfwSetWindowShouldClose(window, GL_TRUE);
  13. }
  14.  
  15. int main() {
  16. GLFWwindow* window;
  17. GLuint VAO;
  18. GLuint VBO;
  19. GLfloat Vertices[] = {
  20. -0.5f, -0.5f, 0.0f,
  21. -0.5f, 0.5f, 0.0f,
  22. 0.5f, 0.5f, 0.0f
  23. };
  24.  
  25. glfwSetErrorCallback(errorCallback);
  26.  
  27. if(!glfwInit())
  28. return -1;
  29.  
  30. window = glfwCreateWindow(640, 640, "Mi juego", NULL, NULL);
  31.  
  32. if(!window) {
  33. glfwTerminate();
  34. return -1;
  35. }
  36.  
  37. glfwMakeContextCurrent(window);
  38. glfwSetKeyCallback(window, keyCallback);
  39.  
  40. glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
  41. glEnable(GL_DEPTH_TEST);
  42.  
  43. glGenVertexArrays(1, &VAO);
  44. glBindVertexArray(VAO);
  45.  
  46. glGenBuffers(1, &VBO);
  47. glBindBuffer(GL_ARRAY_BUFFER, VBO);
  48. glBufferData(GL_ARRAY_BUFFER, sizeof(Vertices), Vertices, GL_STATIC_DRAW);
  49. glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0);
  50. glEnableVertexAttribArray(0);
  51.  
  52. while(!glfwWindowShouldClose(window)) {
  53. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  54.  
  55. glBindBuffer(GL_ARRAY_BUFFER, VBO);
  56. glDrawArrays(GL_TRIANGLES, 0, 3);
  57.  
  58. glfwSwapBuffers(window);
  59. glfwPollEvents();
  60. }
  61.  
  62. glfwDestroyWindow(window);
  63. glfwTerminate();
  64.  
  65. return 0;
  66. }

Como ya se ha mencionado, el código puede ser compilado sin problemas, pero al ejecutar el .exe correspondiente, crashea (nótese que se abre la ventana en blanco, y justo en ese momento crashea). ¡Gracias por su atención y ayuda!
98  Programación / Programación C/C++ / Re: [Ayuda] Buscaminas en C++ en: 14 Mayo 2015, 10:33 am
Lo siento, no se proporcionan códigos. Este subforo fue diseñado para solucionar errores de compilación, ver que problema hay en un código y exponer tutoriales/ejercicios para que los que estén aprendiendo puedan ver esos ejemplos.
99  Programación / Programación C/C++ / Re: [APORTE] Ejercicio en C++: programa que dibuje un cuadrado en: 14 Mayo 2015, 10:29 am
Está muy bien tu código, pero te aconsejo que des nombres más descriptivos a las funciones/variables. Por ejemplo, en vez de llamar a la función 'obtenerCuradrado' así, podrías llamarla 'dibujarCuadrado'. Siempre busca nombres que se adecuen mejor a la función que realizan.

¡Sigue así!
100  Programación / Programación C/C++ / Re: (Ayuda) Error en Visual Studio 2013 al enlazar con los binarios de GLFW en: 13 Mayo 2015, 18:58 pm
El archivo main está guardado como extensión .c (o sea, que está en c) Ahora bien, en un tutorial sobre GLFW encontré la siguiente "frase": 'Callbacks are simply C functions (or C++ static methods)' La verdad, no se a que se refiere. Espero que ustedes lo comprendan :P



Creí que tenía instalado VS2013 a 64 bits, pero resulta que lo tenía a 32... y me descargué GLFW a 64 bits...

¡Muchas gracias por sus respuestas!
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines