równoległy dostęp do portu przy użyciu Turbo C w Windows XP

A

ankur_c

Guest
Dear members,
Staram się korzystać z portu LPT PC dla I / O aplikacji, mój wniosek jest dobrze środowisku Windows 98, ale chcę go używać w XP jak XP nie pozwalają na dostęp do portów, więc starałem sevelal opcji dostępnych w sieci, jedną z możliwości jest użycie następującego kodu, ale to nie działa.

# include <stdio.h>
# include <conio.h>

int main () (
unsigned port = 0x378 / / pierwszego numeru PIN w port równoległy 0x378-0x37f
int value;
wartość = realiz (port, "c") / / c jest liczbą możesz wysłać do LPT
printf ( "% c wartości wysyłane do portu% d \ n", wartości, port);
return 0)

tak próbowałam z wykorzystaniem inpout32.dll ale daje kilka błędów podczas skompilować z TURBO 3.0.I C mają również przestrzegać stosowania badań podane w logix4u.net ale daje te same błędy.
Jestem związane same.can pl nikogo.mi pomóc w rozwiązaniu problemu.
/************************************************* * /
/ *** *** /
/ *** Test.c - interfejs testu inpout32.dll *** /
/ *** (Http://www.logix4u.net/inpout32.htm) *** /
/ *** *** /
/ *** Copyright (C) 2003, Douglas Beattie Jr *** /
/ *** *** /
/ *** <beattidp(at)ieee.org> *** /
/ *** Http://www.hytherion.com/beattidp/ *** /
/ *** *** /
/************************************************* * /
/************************************************* ******/
/ * * /
/ * Tworzy z wierszem Borland C Compiler-line * /
/ * (Za darmo dla publicznych pobrania Borland.com w * /
/ * Http://www.borland.com/bcppbuilder/freecompiler) * /
/ * * /
/ * Compile z: * /
/ * * /
/ * BCC32-IC: \ Borland \ Bcc55 \ include test.c * /
/ * * /
/ * * /
/ * Upewnij się, że zmiana adresu portu * /
/ * W związku z powyższym, jeśli port LPT jest skierowana * /
/ * W innym miejscu.* /
/ * * /
/************************************************* ******/
# include <stdio.h>
# include <conio.h>
# include <windows.h>

/ * Definicje w kompilacji inpout32.dll to: * /
/ * Krótkie Inp32 _stdcall (krótki PortAddress) * /
/ * Out32 _stdcall nieważne (krótki PortAddress, krótkie danych) * // * Prototyp (typedef funkcji) dla Inp32 DLL funkcji: * /

typedef short _stdcall (* inpfuncPtr) (krótki portaddr);
_stdcall typedef void (* oupfuncPtr) (krótki portaddr, krótkie datum);

int main ()
(
Hlib hInstance;
inpfuncPtr inp32;
oupfuncPtr oup32;

short x;
int i;

/ * Załaduj biblioteki * /
Hlib = LoadLibrary ( "inpout32.dll");

if (Hlib == NULL) (
printf ( "LoadLibrary nie powiodło się. \ n");
return -1;
)
/ * Pobranie adresu funkcji * /

inp32 = (inpfuncPtr) GetProcAddress (Hlib, Inp32 ");

if (inp32 == NULL) (
printf ( "GetProcAddress dla Inp32 nie powiodło się. \ n");
return -1;
)
oup32 = (oupfuncPtr) GetProcAddress (Hlib, Out32 ");

if (oup32 == NULL) (
printf ( "GetProcAddress dla Oup32 nie powiodło się. \ n");
return -1;
)

/************************************************* **************/
/ * Teraz przetestować funkcje * /

/ * Spróbuj odczytać 0x378 .. 0x37F LPT1: * /

for (i = 0x378 (i <0x380) i ) (

x = (inp32) (i);

printf ( "Port odczytu (% 04X) = 04X% \ n", i, x);
)

/***** Napisz rejestr danych * /

i = 0x378;
x = 0x77;

(oup32) (i, x);

printf ( "Napisz do portu 0x% X, datum = 0x% 2 \ n", i, x);

/***** I czytać z powrotem do sprawdzenia * /
x = (inp32) (i);
printf ( "Port odczytu (% 04X) = 04X% \ n", i, x);

/***** One more time, różne wartości * /

i = 0x378;
x = 0xAA;

(oup32) (i, x);

printf ( "Napisz do portu 0x% X, datum = 0x% 2 \ n", i, x);

/***** I czytać z powrotem do sprawdzenia * /
x = (inp32) (i);
printf ( "Port odczytu (% 04X) = 04X% \ n", i, x);

FreeLibrary (Hlib);
return 0;

pozdrowienia
Ankur

 
Ja gdzieś słyszałem, że giveio.dll pomocą można rozwiązać ten problem

Google otrzymać wiecej informacji

Nandhu

 
Spróbuj porttalk lub userport, przyjaciel próbował userport i dał dobre wyniki z portu równoległego.

 
WinXP nie jest DOS, będzie blokować jakikolwiek bezpośredni dostęp do prawdziwego adresu z aplikacji.Co ty potrzebować jest sterownik do map portu w przestrzeni adresowej.

 

Welcome to EDABoard.com

Sponsor

Back
Top