Librerías de enlace dinámico (io.dll), please helpme

23/12/2005 - 12:29 por Omar Emilio Rizzuto | Informe spam
Hola a todos

Necesito que alguien pueda darme una mano con la declaración de la
IO.dll; se me hace imposible utilizarla desde Visual Fox.
Esta Librería se utiliza para acceder al puerto paralelo; desde ella, se
puede enviar información a un periferico o bien se puede recibir
información del estado de otro.
El acceso al puerto lo he logrado; lo estoy haciendo indirectamente desde
D.O.S. por lo que en el programa me aparecen pantallas negras que deslucen
todo el trabajo.
Para el caso específico de la DLL en cuestion (que se encuentra disponible
en Internet en forma libre), consigo declararla en mi programa, pero no
puedo utilizar ninguna de sus funciones.
Mi esquema es el siguiente:

* coloco la Dll en la carpeta Windows\system32
* luego como linea de programa en el inicio:

declare integer PortOut in io.dll
declare integer PortIn in io.dll
PortOut(0x0378,23) && informa que hay demasiados parámetros
v_estado=PortIn(0x0379) && informa que hay demasiados parámetros


*PortOut y PortIn son las dos funciones que se encuentran declaradas en la
Dll, (deben respetarse Mayúsculas y Minúsculas), PortOut(0x0378,23), como
puede observarse tiene dos valores, uno es el del puerto al que se quiere
acceder (debe estar escrito en hexadecimal) y otro, el valor de byte que
querramos pasar al puerto,(máximo 256 en decimal).
Para el caso de PortIn(0x379), esta solo admite un parámetro, que es la
dirección del puerto desde donde se recibe la información de estado del
pin del puerto,(por ej. en este caso el pin "busy" y también debe ser
pasado como hexadecimal)

En varias páginas se pueden observar aplicaciones realizadas en Visual
Basic o C++ que utilizan esta Dll, pero no en Visual Fox, de allí mi
solicitud de ayuda ya que no puedo encontrar la vuelta, desde ya muchas
gracias...

Omar EMilio Rizzuto









PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway

Preguntas similare

Leer las respuestas

#1 Victor B.
23/12/2005 - 15:26 | Informe spam
A lo mejor digo una tontería pero, has probado a pasarle el hexadecimal como
cadena de caracteres?
PortOut("0x0378",23)
o tal vez:
PortOut("0378",23)


Víctor Brasó§Desarrollador independiente§
"Omar Emilio Rizzuto" escribió en el mensaje
news:
Hola a todos

Necesito que alguien pueda darme una mano con la declaración de la
IO.dll; se me hace imposible utilizarla desde Visual Fox.
Esta Librería se utiliza para acceder al puerto paralelo; desde ella, se
puede enviar información a un periferico o bien se puede recibir
información del estado de otro.
El acceso al puerto lo he logrado; lo estoy haciendo indirectamente desde
D.O.S. por lo que en el programa me aparecen pantallas negras que deslucen
todo el trabajo.
Para el caso específico de la DLL en cuestion (que se encuentra disponible
en Internet en forma libre), consigo declararla en mi programa, pero no
puedo utilizar ninguna de sus funciones.
Mi esquema es el siguiente:

* coloco la Dll en la carpeta Windows\system32
* luego como linea de programa en el inicio:

declare integer PortOut in io.dll
declare integer PortIn in io.dll
PortOut(0x0378,23) && informa que hay demasiados parámetros
v_estado=PortIn(0x0379) && informa que hay demasiados parámetros


*PortOut y PortIn son las dos funciones que se encuentran declaradas en la
Dll, (deben respetarse Mayúsculas y Minúsculas), PortOut(0x0378,23), como
puede observarse tiene dos valores, uno es el del puerto al que se quiere
acceder (debe estar escrito en hexadecimal) y otro, el valor de byte que
querramos pasar al puerto,(máximo 256 en decimal).
Para el caso de PortIn(0x379), esta solo admite un parámetro, que es la
dirección del puerto desde donde se recibe la información de estado del
pin del puerto,(por ej. en este caso el pin "busy" y también debe ser
pasado como hexadecimal)

En varias páginas se pueden observar aplicaciones realizadas en Visual
Basic o C++ que utilizan esta Dll, pero no en Visual Fox, de allí mi
solicitud de ayuda ya que no puedo encontrar la vuelta, desde ya muchas
gracias...

Omar EMilio Rizzuto









PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
#2 Carlos Alloatti
23/12/2005 - 17:36 | Informe spam
"Omar Emilio Rizzuto" escribió en el mensaje
news:
Hola a todos

Necesito que alguien pueda darme una mano con la declaración de la
IO.dll; se me hace imposible utilizarla desde Visual Fox.


declare integer PortOut in io.dll
declare integer PortIn in io.dll
PortOut(0x0378,23) && informa que hay demasiados parámetros
v_estado=PortIn(0x0379) && informa que hay demasiados parámetros


*PortOut y PortIn son las dos funciones que se encuentran declaradas en la
Dll, (deben respetarse Mayúsculas y Minúsculas), PortOut(0x0378,23), como
puede observarse tiene dos valores, uno es el del puerto al que se quiere
acceder (debe estar escrito en hexadecimal) y otro, el valor de byte que




Ummm, vos mismo estas poniendo que el segundo parámetro es el valor de byte,
pero le estas pasando un número, que son 4 bytes, de ahi que te da
demasiados parametros

Prueba asi:


Declare PortOut In IO.Dll Integer Port, String Data
Declare integer PortIn In IO.Dll Integer Port

PortOut(0x0378,chr(23))

v_estado = PortIn(0x378)


Si usas 378 en PortOut, porque usas luego 379 en PortIn?

Con respecto a PortOut, lo que te devuelve es un byte, que estas recibiendo
en una variable integer de 4 bytes. ahi ya no se como hacer


Carlos
Respuesta Responder a este mensaje
#3 Carlos Alloatti
23/12/2005 - 21:51 | Informe spam
"Jd" escribió en el mensaje
news:%
Pues... los que saben bien de APIS que me corrijan, pero se me hace que
te esta faltando declarar los parametros de las funciones de las DLL...

Segun yo, deberia quedarte asi, insisto los que saben de APIS que me
corrijan:

* coloco la Dll en la carpeta Windows\system32
* luego como linea de programa en el inicio:

declare integer PortOut in io.dll integer port, integer value
declare integer PortIn in io.dll integer port
PortOut(0x0378,23) && informa que hay demasiados parámetros
v_estado=PortIn(0x0379) && informa que hay demasiados parámetros



Ojala te sirva

LSC Juan de Dios Corrales Leal.




la función PortOut no devuelve ningún valor, por lo que lo correcto es:

Declare PortOut In IO.Dll Integer Port, String Data


Por otra parte el segundo parametro es del tipo Byte, que si no me equivoco
no existe en FoxPro, por lo se le puede poner como string y luego hacer
chr(n) para pasar ese parametro.

Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida