Académique Documents
Professionnel Documents
Culture Documents
0 y el Puerto Paralelo
En otro artículo escribiré a fondo sobre el tema de las DLL, aquí se necesitan
soluciones prácticas para quienes desean experimentar con el puerto paralelo desde
Visual Basic, por lo tanto abordemos algunas sorpresas que seguramente nos esperan
en el camino.
/**********************************************************
* det.c *
* Genera un archivo de información de puertos *
* (c)1999, Virgilio Gómez Negrete *
**********************************************************/
#include <stdio.h>
int main()
{
unsigned int __far *direccion;
int i;
FILE *puertos;
Este programa nos muestra que por lo general la dirección del puerto paralelo LPT1
es 0x378h, que en números decimales equivale al valor de 888, sin embargo conviene
que primero determine con seguridad la dirección correcta del puerto paralelo en su PC
y así evitar conflictos, en este artículo se asume que dicha dirección es en efecto 888
decimal, o sea 0x378h. Es importante el valor decimal porque Visual Basic entiende
poco de conversión de bases numéricas, así que habrá que facilitarle las cosas.
//*********************************************************
// puerto.cpp
// Una DLL para manejo de puerto paralelo
// ©2000, Jaime Virgilio Gómez Negrete
//*********************************************************
#include <windows.h>
#include <dos.h>
#include "puerto.h"
return TRUE;
}
numero = inp(direccion);
return numero;
}
Su respectivo archivo de cabecera es:
//*********************************************************
// puerto.h
// ©2000, Jaime Virgilio Gómez Negrete
//*********************************************************
//*********************************************************
// Uso: Escritura(int direccion_puerto_LPT1, int valor)
//*********************************************************
EXPORT BOOL Escritura(int, int);
//*********************************************************
// Uso: Lectura(int direccion_puerto_LPT1)
//*********************************************************
EXPORT int Lectura(int);
Aquí, la palabra clave EXPORT indica que las funciones están disponibles para otros
programas externos a la DLL, además se utiliza la palabra clave __declspec con el
atributo dllexport para garantizar que las funciones sean exportables a otros
programas que así las requieran, con ésto al compilar la DLL se crea un archivo de
definición en donde queda especificado cuales son las funciones disponibles para otros
programas en una DLL, en otras palabras, se trata del punto de entrada a las funciones
de la DLL.
EXPORTS
LECTURA=Lectura @1
ESCRITURA=Escritura @2
Compile los archivos llamados Puerto.cpp y Puerto.h para obtener la DLL llamada
Puerto.dll y veamos a continuación cómo utilizarla desde Visual Basic.
Volver al principio
Option Explicit
Valor1 = 0
If chkD0.Value = 1 Then
Valor1 = Valor1 + 1
End If
If chkD1.Value = 1 Then
Valor1 = Valor1 + 2
End If
If chkD2.Value = 1 Then
Valor1 = Valor1 + 4
End If
If chkD3.Value = 1 Then
Valor1 = Valor1 + 8
End If
If chkD4.Value = 1 Then
Valor1 = Valor1 + 16
End If
If chkD5.Value = 1 Then
Valor1 = Valor1 + 32
End If
If chkD6.Value = 1 Then
Valor1 = Valor1 + 64
End If
If chkD7.Value = 1 Then
Valor1 = Valor1 + 128
End If
txtEscritura.Text = Valor1
Result = Escritura(txtDireccion.Text, Valor1)
txtLectura.Text = Lectura(txtDireccion.Text)
End Sub
Valor = Lectura(txtDireccion.Text)
txtLectura.Text = Valor
End Sub
Result2 = Escritura(txtDireccion.Text, 0)
End
End Sub
Ahora ya dispone Usted de una herramienta básica para trabajar con el puerto
paralelo desde Visual Basic, puede incluso agregar nuevas funciones a la DLL y así
agregar funcionalidad a VB a través de llamadas a función de la biblioteca C, Usted
tiene la palabra...
Volver al principio
Descargas
El código fuente tanto en C++ como en Visual Basic 6.0 lo puede descargar haciendo
clic aquí