A
ankur_c
Guest
Уважаеми потребители,
Аз съм се опитва да използва LPT порт на персонален компютър за около I / O молба, молбата ми работи добре, е Windows 98 околната среда, но аз искам да го използвате в XP и XP не позволяват достъп до пристанищата, така че аз се опитах sevelal възможности, които съществуват в Мрежата, една от възможностите е да се използва следния код, но той не работи.
# включват <stdio.h>
# включват <conio.h>
Int основни (Void) (
грозен порт = 0x378 / / първа за закрепване в паралелния порт на 0x378-0x37f
Int стойност;
стойност = Outp (пристанище, 'C') / / В е числото, което ще изпратим до LPT
printf ( "% в стойност, изпратени до пристанище% г \ N", стойност, пристанище);
връщане 0)
така аз се опитах с използването inpout32.dll но тя дава няколко грешки, когато се събират с 3.0.I Turbo C имат също спазват тест прилагане, посочени в logix4u.net но тя дава същите грешки.
Аз съм поставяне на same.can PL никого.да ми помогне в решаването на проблема.
/************************************************* * /
/ *** *** /
/ *** TEST.c - тест интерфейс за inpout32.dll *** /
/ *** (Http://www.logix4u.net/inpout32.htm) *** /
/ *** *** /
/ *** Copyright (C) 2003, Дъглас Бийти младши *** /
/ *** *** /
/ *** <beattidp(at)ieee.org> *** /
/ *** Http://www.hytherion.com/beattidp/ *** /
/ *** *** /
/************************************************* * /
/************************************************* ******/
/ * * /
/ * Изгражда с командване на Borland's-лайн компилатор * /
/ * (Безплатно за публично изтегляне от Borland.com, най * /
/ * Http://www.borland.com/bcppbuilder/freecompiler) * /
/ * * /
/ * Събиране с: * /
/ * * /
/ * BCC32-IC: \ Borland \ BCC55 \ ВКЛЮЧВАТ TEST.C * /
/ * * /
/ * * /
/ * Не забравяйте да промените порта адресите * /
/ * Съответно, ако ви LPT порт е адресирано * /
/ * Другаде.* /
/ * * /
/************************************************* ******/
# включват <stdio.h>
# включват <conio.h>
# включват <windows.h>
/ * Определения в изграждането на inpout32.dll са: * /
/ * Кратко _stdcall Inp32 (кратко PortAddress); * /
/ * Нищожен Out32 _stdcall (кратко PortAddress, кратки данни); * // * Прототип (функция typedef) за функция DLL Inp32: * /
typedef кратко _stdcall (* inpfuncPtr) (кратко portaddr);
typedef невалидни _stdcall (* oupfuncPtr) (кратко portaddr, кратко Datum);
Int основни (Void)
(
HINSTANCE hLib;
inpfuncPtr inp32;
oupfuncPtr oup32;
кратко X;
Int I;
/ * Заредете библиотека * /
hLib = LoadLibrary ( "inpout32.dll");
IF (hLib == NULL) (
printf ( "LoadLibrary се провали. \ N");
връщане -1;
)
/ * Получите адреса на функция * /
inp32 = (inpfuncPtr) GetProcAddress (hLib "Inp32");
IF (inp32 == NULL) (
printf ( "GetProcAddress за Inp32 се провали. \ N");
връщане -1;
)
oup32 = (oupfuncPtr) GetProcAddress (hLib "Out32");
IF (oup32 == NULL) (
printf ( "GetProcAddress за Oup32 се провали. \ N");
връщане -1;
)
/************************************************* **************/
/ * Сега тест на функциите * /
/ * Опитайте се да прочетете 0x378 .. 0x37F, LPT1: * /
за (I = 0x378; (I <0x380); I ) (
X = (inp32) (I);
printf ( "пристанище се чете (% 04X) =% 04X \ N", I, Х);
)
/***** Записваме данните регистър * /
I = 0x378;
х = 0x77;
(oup32) (I, Х);
printf ( "пристанище пишете на 0x% Х, Datum = 0x% 2X \ N", I, Х);
/***** И прочетете обратно да се провери * /
X = (inp32) (I);
printf ( "пристанище се чете (% 04X) =% 04X \ N", I, Х);
/***** Един повече време, различна стойност * /
I = 0x378;
х = 0xAA;
(oup32) (I, Х);
printf ( "пристанище пишете на 0x% Х, Datum = 0x% 2X \ N", I, Х);
/***** И прочетете обратно да се провери * /
X = (inp32) (I);
printf ( "пристанище се чете (% 04X) =% 04X \ N", I, Х);
FreeLibrary (hLib);
връщане 0;
с уважение
Ankur
Аз съм се опитва да използва LPT порт на персонален компютър за около I / O молба, молбата ми работи добре, е Windows 98 околната среда, но аз искам да го използвате в XP и XP не позволяват достъп до пристанищата, така че аз се опитах sevelal възможности, които съществуват в Мрежата, една от възможностите е да се използва следния код, но той не работи.
# включват <stdio.h>
# включват <conio.h>
Int основни (Void) (
грозен порт = 0x378 / / първа за закрепване в паралелния порт на 0x378-0x37f
Int стойност;
стойност = Outp (пристанище, 'C') / / В е числото, което ще изпратим до LPT
printf ( "% в стойност, изпратени до пристанище% г \ N", стойност, пристанище);
връщане 0)
така аз се опитах с използването inpout32.dll но тя дава няколко грешки, когато се събират с 3.0.I Turbo C имат също спазват тест прилагане, посочени в logix4u.net но тя дава същите грешки.
Аз съм поставяне на same.can PL никого.да ми помогне в решаването на проблема.
/************************************************* * /
/ *** *** /
/ *** TEST.c - тест интерфейс за inpout32.dll *** /
/ *** (Http://www.logix4u.net/inpout32.htm) *** /
/ *** *** /
/ *** Copyright (C) 2003, Дъглас Бийти младши *** /
/ *** *** /
/ *** <beattidp(at)ieee.org> *** /
/ *** Http://www.hytherion.com/beattidp/ *** /
/ *** *** /
/************************************************* * /
/************************************************* ******/
/ * * /
/ * Изгражда с командване на Borland's-лайн компилатор * /
/ * (Безплатно за публично изтегляне от Borland.com, най * /
/ * Http://www.borland.com/bcppbuilder/freecompiler) * /
/ * * /
/ * Събиране с: * /
/ * * /
/ * BCC32-IC: \ Borland \ BCC55 \ ВКЛЮЧВАТ TEST.C * /
/ * * /
/ * * /
/ * Не забравяйте да промените порта адресите * /
/ * Съответно, ако ви LPT порт е адресирано * /
/ * Другаде.* /
/ * * /
/************************************************* ******/
# включват <stdio.h>
# включват <conio.h>
# включват <windows.h>
/ * Определения в изграждането на inpout32.dll са: * /
/ * Кратко _stdcall Inp32 (кратко PortAddress); * /
/ * Нищожен Out32 _stdcall (кратко PortAddress, кратки данни); * // * Прототип (функция typedef) за функция DLL Inp32: * /
typedef кратко _stdcall (* inpfuncPtr) (кратко portaddr);
typedef невалидни _stdcall (* oupfuncPtr) (кратко portaddr, кратко Datum);
Int основни (Void)
(
HINSTANCE hLib;
inpfuncPtr inp32;
oupfuncPtr oup32;
кратко X;
Int I;
/ * Заредете библиотека * /
hLib = LoadLibrary ( "inpout32.dll");
IF (hLib == NULL) (
printf ( "LoadLibrary се провали. \ N");
връщане -1;
)
/ * Получите адреса на функция * /
inp32 = (inpfuncPtr) GetProcAddress (hLib "Inp32");
IF (inp32 == NULL) (
printf ( "GetProcAddress за Inp32 се провали. \ N");
връщане -1;
)
oup32 = (oupfuncPtr) GetProcAddress (hLib "Out32");
IF (oup32 == NULL) (
printf ( "GetProcAddress за Oup32 се провали. \ N");
връщане -1;
)
/************************************************* **************/
/ * Сега тест на функциите * /
/ * Опитайте се да прочетете 0x378 .. 0x37F, LPT1: * /
за (I = 0x378; (I <0x380); I ) (
X = (inp32) (I);
printf ( "пристанище се чете (% 04X) =% 04X \ N", I, Х);
)
/***** Записваме данните регистър * /
I = 0x378;
х = 0x77;
(oup32) (I, Х);
printf ( "пристанище пишете на 0x% Х, Datum = 0x% 2X \ N", I, Х);
/***** И прочетете обратно да се провери * /
X = (inp32) (I);
printf ( "пристанище се чете (% 04X) =% 04X \ N", I, Х);
/***** Един повече време, различна стойност * /
I = 0x378;
х = 0xAA;
(oup32) (I, Х);
printf ( "пристанище пишете на 0x% Х, Datum = 0x% 2X \ N", I, Х);
/***** И прочетете обратно да се провери * /
X = (inp32) (I);
printf ( "пристанище се чете (% 04X) =% 04X \ N", I, Х);
FreeLibrary (hLib);
връщане 0;
с уважение
Ankur