Como manejar los puertos de la PC con C++?

Hola a todos!

Esta vez estoy en un proyecto de Electronica, el cual consiste en poder manipular datos por los puertos de la PC, ya sea el paralelo, el puerto serial o USB....pero eso si, bajo un programa realizado en C++. Ya busque varios ejemplos de como poder manejar el puerto paralelo, pero los programas no se compilan, no se que es lo que puede estar pasando! Necesito saber si necesito de alguna DLL para poder manipular los puertos con C++ y que me proporcionen algunos ejemplos, ya que en esto de la programación en C++ no estoy muy adiestredo :)

de antemano gracias por tomarse su tiempo para ayudarme, Saludos!
 
Hola campeón:

En estos momentos estoy haciendo, diseñando la programación del puerto paralelo para poder en el futuro hacer un manual de calidad.

Aquí hay un manual de PDF sobre el puerto serie con Visual C++ y Visual Basic .net
http://www.abcdatos.com/tutoriales/tutorial/v12.html

El mejor es este de Visual C# más completo.
http://www.abcdatos.com/tutoriales/tutorial/z9521.html

Ya dirás si te sirven y no necesitan ninguna dll, el puerto paralelo si.

Saludo.
 
Pero el problema es que necesito controlar un circuito electronico con la PC, y tiene que ser por puerto paralelo!

he buscado en internet algunas DLL, pero no me funcionan! He seguido paso a paso los pasos para copiar a la carpeta de System32 la DLL, y nada de nada. Ya mas o menos puedo hacer programas en C++, pero aun sigo con ese problema, que no puedo controlar el puerto paralelo con C++!

Te agradezco por tu colaboración, ya visite tu blog, me parece interesante!
 
Gracias por sus aportes! Ya pude controlar el puerto paralelo de la PC, se necesita utilizar la libreria inpout32.dll....luego en el codigo del programa se tiene que mandar a llamar a esta libreria para utilzar las funciones de dicha libreria, las cuales permiten ingresar y enviar datos a traves del puerto paralelo!
 
hey amigos para tratar de evitar estos errores de el puerto paralelo bloqueado en xp
hace falta dos librerias DLL
las cuales estan adjuntadas aqui en este mensaje
nota el pass del zip es mi nombre de usuario

aqui esta un pequeño ejemplo de como mandar datos POR EL PUERTO PARALELO hecho en turbo c++ 4.5 :D:D(y) 100% probado

Código:
#include <iostream.h>
#include <stdio.h>
#include <dos.h>
#include <windows.h>
#include <conio.h>

int numero;

main ()

{
printf(" EJEMPLO ENCIENDE UN LED CONECTADO EN EL PIN D0 DEL PUERTO PARALELO \n");
printf("*********************BY MOE ERG cevollin***************************\n \n \n");

printf("NUMERO 0 = LED APAGADO \nNUMERO 1 = LED ENCENDIDO \n");
printf("INTRODUSCA 0 o 1 PARA APAGAR O ENCENDER LED \n");
principio:
scanf("%d",&numero);

if(numero==0)
outport(0x378, 0);

if(numero==1)
outport(0x378, 1);
goto principio;
getch ();
return 0;
}
 

Adjuntos

  • LIBRERIAS DLL.rar
    36.3 KB · Visitas: 777
Última edición:
Coño esto lo quiero probar yo, aunque desde que me puse el W.vista cada vez que he probado a compilar un programa con el devc++ me da error...

Muchas gracias por las informaciones y sobre todo por el ejemplo!

Un saludo!
 
si la verdad cada compilador tiene su defectito en el dev c++ por ejemplo no tiene la libreria conio y aparte no tiene las funciones para manejar los puertos el outport

y el turbo c++ me esta dando ahorita unos pequeños problemitas con la funcion

sleep de la libreria dos.h
Sleep de la libreria windows.h
 
si la verdad cada compilador tiene su defectito en el dev c++ por ejemplo no tiene la libreria conio y aparte no tiene las funciones para manejar los puertos el outport

Y yo me pregunto: por que será que en lugar de estudiar cada compilador nuevo se dedican a quejarse que no tiene lo mismo que el Borland? Solo aprendieron ese compilador y ningun otro? Nunca estudiaron que esas funciones NO SON estándar del ANSI C y cada fabricante las llama como se les ocurre, lo mismo que las bilbiotecas?

El Dev-C SI TIENE instrucciones E/S, pero tienen otro nombre:
_outp() es equivalente a la outport() y
_inp() es la equivalente a la inport()
Y esas instrucciones compilan sin necesidad de ningún include.

Por otra parte, Windows virtualiza los recursos de hardware, así que poco importa que el compilador tenga soporte I/O por que el sistema operativo nunca lo va a dejar acceder al hardware desde el especio de usuario y siempre va a arrojar una excepción, que son esos errores que dicen que aparece.
Claro que hay formas de sobrepasar esta protección, unas mas simpes y otras mas difíciles, pero les recomiendo visitar www.beyondlogic.com y analizar el producto PortTalk.
 
Hola! estoy con un problema que parece es bastante comun, tengo windows 7 y compilo con minGW por las dudas haga falta saberlo.
Quiero saber como puedo controlar el puerto paralelo con C++, ya probe con los .dll de arriba, con un "driver para puerto paralelo UserPOrt" pero lo unico que hace es apagarme la compu cuando tiene ganas, y porbe con varias combinaciiones de comandos por las dudas _outp() outp() outport() outportb() y nada.
Me tira el error .cpp:error: 'outport' was not declared in this scope

Alguien que me pueda ayudar??? Muchas gracias ya busque por todos lados
 
Investiga si con W7 la direccion de los puertos paralelos corresponden a las direcciones de antes y no esten remapeadas. Si el soft va a buscar un hard a una direccion inexistente es logico que no pueda hacer nada..
 
Hola! y gracias por responder, pero si estan bien las direcciones que utilizo lo comprobe con el DEBUG y con el portmon (programa para ver con colores la activida del puerto) esta muy bueno.

Mi problema es que no puedo compilar el codigo! Es mucho mas dificil hacerlo por USB o estoy en la misma complicacion?

Gracias
 
Atrás
Arriba