Hola
Como lo prometí, les pongo una guía sencilla sobre como usar el puerto paralelo en cualquier Windows, incluso el renegado XP. Lo he probado bajo Visual C++ 6 y .Net.
Para empezar comento que todo fue tomado de:
Autor: Fred Bulback
http://www.geekhideout.com/iodll.shtmlVisiten la página y descarguen los archivos
io.cpp, io.dll, io.zip e io.h. A continuación los pasos a seguir.
- Crear una aplicación de diálogo de tipo MFC
- Importar archivos io.h en headers y io.cpp en source files usando la ventana Explorador de soluciones(descargarlos de la página de arriba)
- En el archivo xxxdlg.cpp agregar
#include "io.h"
- Abrir resource.h y agregar la dirección del puerto paralelo junto a las demás #define (para no declararla a cada rato)
#define PORTADDRESS 0x378
- Ir a InitDialog de xxxdlg.cpp y llamar LoadIODLL()
LoadIODLL(); //inicia puertos
PortOut(PORTADDRESS,0x00); //Las terminales de salida de 0x378 se pondrán a 0V
- Otro ejemplo:
PortOut(PORTADDRESS,0xff); //Las terminales de salida de 0x378 se pondrán a 5V
Las instrucciones disponibles para c++ son:
C/C++ Prototypes
void WINAPI PortOut(short int Port, char Data);
void WINAPI PortWordOut(short int Port, short int Data);
void WINAPI PortDWordOut(short int Port, int Data);
char WINAPI PortIn(short int Port);
short int WINAPI PortWordIn(short int Port);
int WINAPI PortDWordIn(short int Port);
void WINAPI SetPortBit(short int Port, char Bit);
void WINAPI ClrPortBit(short int Port, char Bit);
void WINAPI NotPortBit(short int Port, char Bit);
short int WINAPI GetPortBit(short int Port, char Bit);
short int WINAPI RightPortShift(short int Port, short int Val);
short int WINAPI LeftPortShift(short int Port, short int Val);
short int WINAPI IsDriverInstalled();
Bueno, así de fácil es controlarlo. Cabe mencionar que la librería io.dll sirve para visual basic, delphi y otros más.

Adjunto solución de visual c++ net. Por favor usar Winzip 9 para descomprimir los archivos.
