C/Visual C - Help:¿Como encender leds puerto paralelo(LPT) en Windows7?

 
Vista:
Imágen de perfil de Oscar
Val: 1
Ha disminuido su posición en 51 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Help:¿Como encender leds puerto paralelo(LPT) en Windows7?

Publicado por Oscar (1 intervención) el 03/11/2017 02:21:00
Cordial Saludo,

Hola, espero que estén muy bien, tengo una pregunta: ¿De casualidad saben de algún método efectivo para controlar el puerto paralelo (LPT) en S.O Windows 7? -La cosa es que quiero encender unos leds y he intentado de muchas maneras sin resultado positivo, no se si es la Dll (inpout32.dll) la cual según varios tutoriales dice que debe ser copiada en la carpeta System32, lo cual he hecho al pie de la letra y también realizado la compilación del código en C++ que luego de ser compilado me arroja un error "Fallo la carga de la libreria.", también he cambiado la libreria pero nada, no se que hacer, estaría muy agradecido si pudieran dedicar unos minutos de su valioso tiempo para chequear el código y me corrijan y si saben de algún método aun más efectivo, estaré muy agradecido, adjunto el código C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <conio.h>
#include <windows.h>
 
typedef short _stdcall (*inpfuncPtr)(short portaddr);
typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);
 
int main(void)
{
     HINSTANCE hLib;
     inpfuncPtr inp32;
     oupfuncPtr oup32;
 
     hLib = LoadLibrary("inpout32.dll");
 
     if (hLib == NULL) {
          printf("Fallo la carga de la libreria.\n");
          return -1;
     }
 
     oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");
 
     if (oup32 == NULL) {
          printf("GetProcAddress for Oup32 Failed.\n");
          return -1;
     }
 
     (oup32)(0x378,64);
     Sleep(500);
     (oup32)(0x378,32);
     Sleep(500);
     (oup32)(0x378,16);
     Sleep(500);
     (oup32)(0x378,8);
     Sleep(500);
     (oup32)(0x378,4);
     Sleep(500);
     (oup32)(0x378,2);
     Sleep(500);
     (oup32)(0x378,1);
     Sleep(500);
     (oup32)(0x378,0);
        Sleep(500);
 
     FreeLibrary(hLib);
     return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Help:¿Como encender leds puerto paralelo(LPT) en Windows7?

Publicado por Martín (18 intervenciones) el 04/11/2017 22:29:54
Con respecto a tu pregunta específica, sobre "¿Como encender leds puerto paralelo(LPT) en Windows7?", no tengo una respuesta del tipo "debes hacer esto y aquello" y ya. No, lo siento, las cosas así de simples son sólo para los simples, y si tú fueras un simple no necesitarías escribir el código, creo.
Bueno, y esto va de respuesta porque me parece que puede servir para algo: tu programa no puede acceder a los puertos paralelos, así como no puede acceder a nada que sea "hardware", a nada, así de simple; para eso están los "drivers", que también son programas, pero siguen otras reglas y necesitan estar "firmados" de una manera cara (caro, costoso en dinero), para que Windows permita que se ejecuten.

Respuesta simple a cómo hacer un programa en C++ para encender un led: No puedes, olvídalo, no es para ti.

¿Quieres probar con "inpout32.dll"?
Intenta con una de estas versiones: InpOut32 o InpOutx64 que están disponibles muy (realmente muy, muy) amablemente en http://www.highrez.co.uk/ (y fíjate que en la página arriba a la derecha hay un link para hacer una donación, debes donar lo que vale una cerveza en tu ciudad).

También vas a necesitar empezar por el principio, así que puedes leer la documentación de la función LoadLibrary en
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx

Y ah, quita inpout32.dll de tu carpeta System32, que no tiene nada que hacer ahí.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar