Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - Arkangel_0x7C5

#91
Citar
Linking....

complejos.dll error(s) 0 warnin(s) 0
Lo que ocurre es que has generado una dll que no es ejecutable directamente. Las dll son cargadas por otros programas para usar sus funciones. Para que se ejecutara tendrías que cargarla con otro programa o cambiar el proyecto para que te genere un exe, una aplicacion win32

Saludos
#92
Cita de: -MicrO- en 23 Julio 2011, 22:21 PM
Amigo la verdad no te entendi bien.

Es que en esto somos noob, hasta ahora estamos empezando.
este error:
StdAfx.obj : error LNK2005: "public: __thiscall complejo::complejo(void)" (??0complejo@@QAE@XZ) already defined in complejo.obj
Te esta diciendo que a encontrado 2 veces la implementacion del metodo complejo de la clase complejo
Esto pasa porque:
complejo::complejo(){

}
lo colocaste en un archivo de extension .h que se inclulle en varios archivos. Por lo que se lo encuentra varias veces
#93
Funciones duplicadas a causa de que defines la implementacion de los metodos de la clase en un fichero .h que se inclulle varias veces. Tienes que declarar la definicion de la clase en un .h y la implementacion de sus metodos la haces en un fichero .cpp a parte que se compila y linkea con los otros

Saludos
#94
Programación C/C++ / Re: Keep Alive Sockets
21 Julio 2011, 17:43 PM
No se porque sera, pero si la conexión se cerrara bien, send devolvería 0 en vez de SOCKET_ERROR
#95
Las bios EFI al menos las que yo he visto, se parecian bastante al menos en la interface....
#96
ASM / Re: Una pequeña curiosidad
20 Junio 2011, 13:32 PM
Cita de: _Enko en 19 Junio 2011, 00:22 AM
Viste alguna pc en la cual entrando al setup de la bios puedas usar el raton? Si ves alguna, entonces en esa si vas a poder... yo no he encontrado.

la interupciones del raton son de DOS
eso no significa que no tengan un servicio para detectarlo, la apariencia de las bios no a cambiado en decadas. Las bios EFI si te dejan usar el raton para manejarlas

La interrupcion 0x16 tiene un servicio para manejar mostrar el cursor
http://www.ctyme.com/intr/int-16.htm
#97
ASM / Re: Gas Inline con Síntaxis Intel
20 Junio 2011, 13:22 PM
si en c usas asm inline, el compilador no tocara ese codigo
y si usas c va a generar asm con sintaxis at&t
#98
ASM / Re: Direccion Hrdware
29 Abril 2011, 20:17 PM
yo solo se lo del PCI, que te servira para la mayorria del hardware.

Al hardware se le suelen asignar unas direcciones de I/O o tambin de memria. pueden ser estáticas o variar.

Se enumeran asi:

#define outb(port,value) \
__asm__ __volatile__("outb %%al,%%dx"::"a" (value),"d" (port))

#define inb(port) ({\
unsigned char _v; \
__asm__ __volatile__ ("inb %%dx,%%al":"=a" (_v):"d" (port)); \
_v; \
})
#define outw(port,value) \
__asm__ __volatile__("outw %%ax,%%dx"::"a" (value),"d" (port))

#define inw(port) ({\
unsigned short _v; \
__asm__ __volatile__ ("inw %%dx,%%ax":"=a" (_v):"d" (port)); \
_v; \
})
#define outd(port,value) \
__asm__ __volatile__("outl %%eax,%%dx"::"a" (value),"d" (port))

#define ind(port) ({\
unsigned long _v; \
__asm__ __volatile__ ("inl %%dx,%%eax":"=a" (_v):"d" (port)); \
_v; \
})

#define PCI_CONFIG_ADDRESS 0xCF8
#define PCI_CONFIG_DATA 0xCFC
//Las direcciones del espacio PCI estan compuestas de esta manera
typedef struct PCI_ADDRESS{
union {
struct {
unsigned long zero:2;
unsigned long Registro:6;//Numero de registro del espacio PCI de un dispositivo
unsigned long Funtion:3;
unsigned long Device:5;
unsigned long Bus:8;
unsigned long Reserved:7;
unsigned long Enable:1;
}flag;
unsigned long ADDRESS;
};
}PCI_ADDRESS;
typedef struct HARDWARE_ID{
union{
struct {
unsigned long vendor;
unsigned long device;
};
unsigned long id;
};
}HARDWARE_ID;


void PCI_Enum(){
PCI_ADDRESS Addr;
HARDWARE_ID ID;
Addr.ADDRESS = 0;
ID.id = 0;
Addr.flag.Enable = 1;

for(short bus = 0;bus<256;bus++){//Busca en un numero de bus los dispositivos, hay 256 posibles
//Cada bus tiene al menos un dispositivo y 32 de maximo
for(short dev = 0;dev<32;dev++){//Busca en un bus los dispositivos
//Cada dispositivo puede tener una o hasta 8 funciones diferentes
for(int fun = 0;fun<8;fun++){//La funcion 0 siempre estara disponible, sino el dispositivo no esta
Addr.flag.Funtion = fun;
Addr.flag.Device = dev;
Addr.flag.Bus = bus;

outd(PCI_CONFIG_ADDRESS,Addr.ADDRESS);
ID.id = ind(PCI_CONFIG_DATA);
if(!(ID.vendor+1)){//Si el vendor es 0xFFFF significa que esa funcion no esta presente
if(!fun)break;
}else{
printf("Detected: PCI\VEND_%X04&DEV_%X04\n",ID.vendor, ID.device);
};
}
};
}

};


busca en esta pagina lo que necesites: http://wiki.osdev.org/PCI#Configuration_Space
#99
ASM / Re: Direccion Hrdware
29 Abril 2011, 14:32 PM
puedes hacerlo de 2 maneras, preguntándole al SO o enumerando los dispositivos conectados al bus-PCI y USB

La primera depende del SO en el que estés, con la otra es cuestion de usar las instrucciones in out para comunicarte con el Hardware
#100
ese code que pones yo no lo veo dar problemas, lo que dudo es que no los invierta si es Big-endian. Para invertirlos segun sea Big-endian o no yo averiguaría si estas en un PC big-endian o litte-endian
Pon el code completo porque sino me parece que no vamos a encontrar nada

Lo que me muestras, tienen en común el bit de signo, el numero 8 si manejas bytes o el 31 en caso de grupos de 4 bytes, pero como lo inviertes se queda en el numero 8.