A
ankur_c
Guest
Cari soci,
Sto cercando di utilizzare la porta LPT del PC per qualche I / O di domanda, la mia applicazione funziona bene ambiente è Windows 98, ma voglio che per usarlo in XP come XP non consentono l'accesso ai porti, così ho cercato sevelal opzioni disponibili nel web, una possibilità è quella di utilizzare il seguente codice, ma non ha funzionato.
# include <stdio.h>
# include <conio.h>
int main () (
unsigned port = 0x378 / / pin prima porta parallela 0x378-0x37f
int valore;
value = outp (porto, 'c') / / c è il numero che ti invieremo a LPT
printf ( "c% valore inviato alla porta% d \ n", port, value);
return 0)
così ho provato con l'uso inpout32.dll ma dà diversi errori quando ho la compilazione con TURBO C 3.0.I hanno un rispettato anche una domanda di prova di cui logix4u.net ma dà gli stessi errori.
Vi allego il pl same.can nessuno.darmi una mano a risolvere il problema.
/************************************************* * /
/ *** *** /
/ *** Test.c - prova di interfaccia per inpout32.dll *** /
/ *** (Http://www.logix4u.net/inpout32.htm) *** /
/ *** *** /
/ *** Copyright (C) 2003, Douglas Beattie Jr. *** /
/ *** *** /
/ <beattidp(at)ieee.org> *** *** /
/ Http://www.hytherion.com/beattidp/ *** *** /
/ *** *** /
/************************************************* * /
/************************************************* ******/
/ * * /
/ * Costruisce con Command-line di Borland C Compiler * /
/ * (Gratuitamente per il download pubblico dal Borland.com, a * /
/ * Http://www.borland.com/bcppbuilder/freecompiler) * /
/ * * /
/ * Compile with: * /
/ * * /
/ * Bcc32-IC: \ Borland \ BCC55 \ include TEST.C * /
/ * * /
/ * * /
/ * Assicurarsi di cambiare la porta indirizzi * /
/ * Di conseguenza se la porta LPT è rivolta * /
/ * Altrove.* /
/ * * /
/************************************************* ******/
# include <stdio.h>
# include <conio.h>
# include <windows.h>
/ Definitions * nella build di inpout32.dll sono: * /
/ * Inp32 _stdcall breve (short PortAddress); * /
/ * Out32 _stdcall void (PortAddress breve, i dati a breve); * // * (Typedef prototipo di funzione) per Inp32 funzione di DLL: * /
typedef _stdcall breve (* inpfuncPtr) (portaddr breve);
_stdcall typedef void (* oupfuncPtr) (portaddr breve, dato a breve);
int main ()
(
HINSTANCE hLib;
inpfuncPtr inp32;
oupfuncPtr oup32;
short x;
int i;
/ * Caricare la libreria * /
hLib = LoadLibrary ( "inpout32.dll");
if (hLib == NULL) (
printf ( "LoadLibrary fallito. \ n");
return -1;
)
/ * Ottenere l'indirizzo della funzione * /
inp32 = (inpfuncPtr) GetProcAddress (hLib, "Inp32");
if (inp32 == NULL) (
printf ( "GetProcAddress per Inp32 Failed. \ n");
return -1;
)
oup32 = (oupfuncPtr) GetProcAddress (hLib, "Out32");
if (oup32 == NULL) (
printf ( "GetProcAddress per Oup32 Failed. \ n");
return -1;
)
/************************************************* **************/
/ * Ora testare le funzioni * /
/ * Prova a leggere 0x378 .. 0x37F, LPT1: * /
for (i = 0x378; (i <0x380); i ) (
x = (inp32) (i);
printf ( "porta read (% 04X) =% 04X \ n", i, x);
)
/***** Scrivere i dati di registrazione * /
i = 0x378;
x = 0x77;
(oup32) (i, x);
printf ( "porta a scrivere 0x% X, datum = 0x% 2X \ n", i, x);
/***** E rileggere per verificare * /
x = (inp32) (i);
printf ( "porta read (% 04X) =% 04X \ n", i, x);
/***** Una volta di più, un valore diverso * /
i = 0x378;
x = 0xAA;
(oup32) (i, x);
printf ( "porta a scrivere 0x% X, datum = 0x% 2X \ n", i, x);
/***** E rileggere per verificare * /
x = (inp32) (i);
printf ( "porta read (% 04X) =% 04X \ n", i, x);
FreeLibrary (hLib);
return 0;
saluti
Ankur
Sto cercando di utilizzare la porta LPT del PC per qualche I / O di domanda, la mia applicazione funziona bene ambiente è Windows 98, ma voglio che per usarlo in XP come XP non consentono l'accesso ai porti, così ho cercato sevelal opzioni disponibili nel web, una possibilità è quella di utilizzare il seguente codice, ma non ha funzionato.
# include <stdio.h>
# include <conio.h>
int main () (
unsigned port = 0x378 / / pin prima porta parallela 0x378-0x37f
int valore;
value = outp (porto, 'c') / / c è il numero che ti invieremo a LPT
printf ( "c% valore inviato alla porta% d \ n", port, value);
return 0)
così ho provato con l'uso inpout32.dll ma dà diversi errori quando ho la compilazione con TURBO C 3.0.I hanno un rispettato anche una domanda di prova di cui logix4u.net ma dà gli stessi errori.
Vi allego il pl same.can nessuno.darmi una mano a risolvere il problema.
/************************************************* * /
/ *** *** /
/ *** Test.c - prova di interfaccia per inpout32.dll *** /
/ *** (Http://www.logix4u.net/inpout32.htm) *** /
/ *** *** /
/ *** Copyright (C) 2003, Douglas Beattie Jr. *** /
/ *** *** /
/ <beattidp(at)ieee.org> *** *** /
/ Http://www.hytherion.com/beattidp/ *** *** /
/ *** *** /
/************************************************* * /
/************************************************* ******/
/ * * /
/ * Costruisce con Command-line di Borland C Compiler * /
/ * (Gratuitamente per il download pubblico dal Borland.com, a * /
/ * Http://www.borland.com/bcppbuilder/freecompiler) * /
/ * * /
/ * Compile with: * /
/ * * /
/ * Bcc32-IC: \ Borland \ BCC55 \ include TEST.C * /
/ * * /
/ * * /
/ * Assicurarsi di cambiare la porta indirizzi * /
/ * Di conseguenza se la porta LPT è rivolta * /
/ * Altrove.* /
/ * * /
/************************************************* ******/
# include <stdio.h>
# include <conio.h>
# include <windows.h>
/ Definitions * nella build di inpout32.dll sono: * /
/ * Inp32 _stdcall breve (short PortAddress); * /
/ * Out32 _stdcall void (PortAddress breve, i dati a breve); * // * (Typedef prototipo di funzione) per Inp32 funzione di DLL: * /
typedef _stdcall breve (* inpfuncPtr) (portaddr breve);
_stdcall typedef void (* oupfuncPtr) (portaddr breve, dato a breve);
int main ()
(
HINSTANCE hLib;
inpfuncPtr inp32;
oupfuncPtr oup32;
short x;
int i;
/ * Caricare la libreria * /
hLib = LoadLibrary ( "inpout32.dll");
if (hLib == NULL) (
printf ( "LoadLibrary fallito. \ n");
return -1;
)
/ * Ottenere l'indirizzo della funzione * /
inp32 = (inpfuncPtr) GetProcAddress (hLib, "Inp32");
if (inp32 == NULL) (
printf ( "GetProcAddress per Inp32 Failed. \ n");
return -1;
)
oup32 = (oupfuncPtr) GetProcAddress (hLib, "Out32");
if (oup32 == NULL) (
printf ( "GetProcAddress per Oup32 Failed. \ n");
return -1;
)
/************************************************* **************/
/ * Ora testare le funzioni * /
/ * Prova a leggere 0x378 .. 0x37F, LPT1: * /
for (i = 0x378; (i <0x380); i ) (
x = (inp32) (i);
printf ( "porta read (% 04X) =% 04X \ n", i, x);
)
/***** Scrivere i dati di registrazione * /
i = 0x378;
x = 0x77;
(oup32) (i, x);
printf ( "porta a scrivere 0x% X, datum = 0x% 2X \ n", i, x);
/***** E rileggere per verificare * /
x = (inp32) (i);
printf ( "porta read (% 04X) =% 04X \ n", i, x);
/***** Una volta di più, un valore diverso * /
i = 0x378;
x = 0xAA;
(oup32) (i, x);
printf ( "porta a scrivere 0x% X, datum = 0x% 2X \ n", i, x);
/***** E rileggere per verificare * /
x = (inp32) (i);
printf ( "porta read (% 04X) =% 04X \ n", i, x);
FreeLibrary (hLib);
return 0;
saluti
Ankur