http://es.wikipedia.org/wiki/Puerto_paralelo
En ese link te dice la verdadera info del puerto paralelo... Y es asi en serio, he trabajado muchisimo con puerto paralelo y serial...

Alli vez una imagen de un conector paralelo macho (el hembra es un espejo de este ok)... Bueno alli veras que el bit menos significativo del puerto de estado es el E3 y el mas significativo es el E7 que ademas es inverso o negado pues...
Con eso ya deberias entender como te llegan los datos... De todas maneras cuando te llega un dato usando la impout32.dll no te importa saber eso, pues el dato lo guardas en una variable...
Mas o menos asi:
Asi defino las funciones de la DLL...
Y asi envio y recibo... Espero te sirva...
EDITO: Por si no sabes porque llamo estados y tal...
Alli estan las definiciones y variables...
En ese link te dice la verdadera info del puerto paralelo... Y es asi en serio, he trabajado muchisimo con puerto paralelo y serial...

Alli vez una imagen de un conector paralelo macho (el hembra es un espejo de este ok)... Bueno alli veras que el bit menos significativo del puerto de estado es el E3 y el mas significativo es el E7 que ademas es inverso o negado pues...
Con eso ya deberias entender como te llegan los datos... De todas maneras cuando te llega un dato usando la impout32.dll no te importa saber eso, pues el dato lo guardas en una variable...
Mas o menos asi:
Código (c) [Seleccionar]
HINSTANCE hLib;
inpfuncPtr inp32;
oupfuncPtr out32;
hLib = LoadLibrary("inpout32.dll");
inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");
out32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");
Asi defino las funciones de la DLL...
Código (c) [Seleccionar]
(out32)(DATOS, Valor_a_Enviar);
Valor_Recibido = (inp32)(ESTADO);
Y asi envio y recibo... Espero te sirva...
EDITO: Por si no sabes porque llamo estados y tal...
Código (c) [Seleccionar]
#define DATOS 0x378
#define ESTADO 0x379
#define CONTROL 0x37A
short Valor_a_Enviar;
short Valor_Recibido;
Alli estan las definiciones y variables...