• Miércoles 5 de Febrero de 2025, 09:41

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - TxaKy

Páginas: [1]
1
Visual C++ / conio.h
« en: Sábado 1 de Junio de 2002, 18:46 »
Ese error te lo da porque no tiene el codigo de la funcion. Con la definicio solo(el .h) no haces nada, ademas tienes que tener el codigo objeto o la biblioteca con el codigo.

2
ASM (Ensamblador) / Re: Límite de tiempo
« en: Sábado 1 de Junio de 2002, 18:34 »
¿En que sistema operativo? con pedir la hora y comparar la ultima vez que la tomastes bastaria. El problema es que el dar la hora es una funcion que ofrece el sistema operativo o bien con una instruccion int (como en DOS) o con una llamada a la API (como en windows).....

3
C/C++ / Copia de un texto a una matriz
« en: Sábado 1 de Junio de 2002, 15:13 »
Una forma un poco mas sencilla que lo de la lista enlazada es mirar el tamaño del fichero antes de leer.

Algo como esto:


void main()
{
char *texto;
FILE *pf;
int len;

pf = fopen("ARCHIVO.TXT", "r");

//me pongo al final y miro posicion
fseek(pf, 0, SEEK_END);
len=ftell(pf);

//me pongo al principio de nuevo
rewind(pf);

//reservo memoria
texto=(char *)malloc(len);

//leo todo el fichero
fread(texto, 1, len, pf);

//haces lo que quieras con el texto

free(texto);
fclose(pf);
}

4
ASM (Ensamblador) / Re: Diferencias entre ASM y WINASM
« en: Lunes 27 de Mayo de 2002, 21:25 »
Antartida winasm no es algo diferente a asm en cuanto a lenguaje de programacion.

Lo unico es que cuando programas en ensamblador al igual que programas muy ligado al hardware lo haces ligado al sistema operativo. Por esta razon es distinta la manera en la que le solicitas servicios  (ej: abrir un archivo, antes con la interrupcion 21 del dos ahora con una llamada a la api de windows), pero el lenguaje sigue siendo el mismo.  Las unicas diferencias que puedes ver es que los compiladores del llamado winasm suelen llevar macros hechas para facilitar el trabajo de hacer comparaciones, llamar a funciones con parametros... etc, etc... pero  sigue siendo todo igual.

Asi que si tenias pensado aprender ensamblador no lo dejes de lado porque desaparezca el dos(si es que ya no lo ha hecho) porque todo te servira  y te puedo decir que incluso te sera mas facil porque con las macros que comente antes el lenguaje queda mas parecido a un lenguaje de alto nivel.

5
C/C++ / modo grafico 13h
« en: Lunes 27 de Mayo de 2002, 20:49 »
dheak ahi va un ejemplo:

#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <asm/page.h>

   
int PutPixel (unsigned char R, unsigned char G, unsigned char B, int x, int y);

struct fb_var_screeninfo vinfo;      //informacion sobre la pantalla
   struct fb_fix_screeninfo finfo;
   unsigned char *screen=NULL;


int main(int argc, char *argv[])
{
   int fbfd;
   
      
   long int screensize;         //variables para hacer el mapeado en memoria del "fichero"
   
   /* Abrimos el dispositivo frame buffer en modo lectura/escritura */
   if (!(fbfd=open("/dev/fb0", O_RDWR)))
   {
           printf("Error al abrir el framebuffer.n");
           return -1;
    }
   
    /* Obtenemos información fija de la pantalla */
    if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo))
   {
            printf("Error al leer información fija.n");
           return -2);
    }

   /* Leemos información variable de la pantalla */
    if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo))
   {
            printf("Error al leer informacion variablen");
            return -3;
   }
   
   
   // Mapeo el framebuffer en memoria.
   // Lo que hace la funcion map es mapear todo el archivo en memoria con lo que
   // es mas facil trabajar con el. A partir de aqui imagina que screen apunta a
   // A000:0000 y solo tienes que tener en cuenta que ahora son 3 bytes para cada pixel(24 bits de color, en el orden Azul verde rojo)
   // o 4 bytes (32 bits de color, Azul Verde Rojo Transparencia). Es decir, escribes directamente
   // la combinacion que forma el color, no das un indice dentro de la paleta como con el modo 13h.
   screensize= ((unsigned long)finfo.smem_len) + ((unsigned long)(finfo.smem_start) & (~PAGE_MASK));
   screen=mmap(NULL, screensize, PROT_WRITE, MAP_SHARED, fbfd, 0);
   
   if(screen == NULL)
   {
      printf("Error al mapear el archivo en memorian.");
      return -4;
   }

   // en vinfo y finfo tienes informacion sobre la pantalla
   //ancho = vinfo.xres;
   //alto = vinfo.yres;
   //bits de color = vinfo.bits_per_pixel;
   
   //pinto un pixel de color blanco en (100,100)
   PutPixel(255,255,255, 100, 100);

   // Libero los recursos
   munmap(screen, screensize);
    close(fbfd);
   

      return 0;
}
       



int PutPixel (unsigned char R, unsigned char G, unsigned char B, int x, int y)
{
   unsigned char *fb;
   
   int offy, offx;

   
   //offset debido al valor de x. Depende de los bytes que ocupe cada pixel.
   offx=x*vinfo->bpp/8;
   
   //offset debido al valor de y. Entre linea y linea no siempre hay una diferencia
   //igual a la resolucion horizontal(al menos en mi ordena no:P) asi que mejor utiliza
   //el campo Lenline para ello.
   offy=y*finfo->lenLine;
   
   //me situo en la posicion indicada
   fb=screen+offy+offx;
   
   //escribo el color... al reves.
   fb[0]=B;
   fb[1]=G;
   fb[2]=R;
   
   return 0;
}

6
C/C++ / Re: modo grafico 13h
« en: Domingo 26 de Mayo de 2002, 19:06 »
dheak en linux no puedes hacerlo asi. La manera mas parecida que tienes para hacer eso es utilizar el framebuffer. Es un fichero de dispositivo en el que si escribes (write(...)) iras poniendo pixels en pantalla. Lo malo es que el modo de video no lo puedes cambiar una vez iniciado el os si no que viene establecido en el arranque(en lilo una linea que pone vga=#numerito).

Si tienes algun problemilla con eso, pegame un toque:P.

7
C/C++ / Como sumar dos números binarios?????
« en: Sábado 25 de Mayo de 2002, 17:02 »
emmm... si te sirve de algo mi modesta opinion, yo optaria por pasar los numeros a decimal, sumar, y luego pasar el resultado a binario.

8
C/C++ / Vuelvo a preguntar, como hacer un sleep
« en: Sábado 25 de Mayo de 2002, 14:48 »
Si quieres esperar milisegundos utiliza la funcion usleep() en vez de sleep().

usleep() te da precision de microsegundos asi que si quieres milisegundos multiplicas por mil y ya esta.

De todas formas para esperar tres segundos te valdria con sleep(3);

Pues esto es todo todito todo. Ale, espero que te sirva de algo.

9
Sobre los Foros de SoloCodigo / Re: DirectX
« en: Martes 12 de Febrero de 2002, 19:19 »
Bueno, he estado mirando por ahi y he visto que hay un foro de opengl y creo que podria ser buena idea incluir alguno sobre DirectX o al menos ponerlo junto al de opengl.

Eso es todo, graciasssssssss.

10
C/C++ / info referente a mp3
« en: Martes 12 de Febrero de 2002, 19:13 »
Bueno pues yo sigo promocionando sourceforge... XDD.

La verdad que alli puedes encontrar mogollon de cosas: rippeadores, reproductores mp3, compresores, programas para cambiar los tag de los mp3... y lo mejor de todo es que llevan incluido el codigo fuente con lo que se convierte en una fuente de informacion(que no de copieteo...) inagotable.

Pues eso, pasa por www.sourceforge.net y busca alli, seguro que encuentras algo que te sirve.

11
Diseño de Algoritmos / Re: Informacion sobre la creacion de algoritmos
« en: Martes 12 de Febrero de 2002, 19:05 »
Mirate esta direccion:
http://sourceforge.net/projects/cryptopp/

Es una biblioteca para criptografia y ademas esta hecha en c++. Supongo que al menos podras sacar ideas del codigo fuente.

Páginas: [1]