PDA

Ver la Versión Completa : puerto paralelo en WINXP mandando a llamar dll


picospunk
22-04-2005, 04:49:37
Hola soy nuevo en delphi y en el manejo de dll, Tengo un problema que por mi novatez no he podido resolver. Resulta que necesito enviar datos al puerto paralelo por medio de un programita en delphi, ya he leido los hilos anteriores acerca de como hacerlo mediante codigo ensamblador usando:

asm
push dx
mov dx, 888 //888 es la direccion del puerto paralelo
mov al, 255
out dx, al
pop dx
end;

pero el problema es que esto no funciona para windowsNT,2000 ni XP, porque estos no permiten el acceso directo a los puertos. Encontré la solución y lo que tengo que hacer es mandar a llamar una dll desde el programa que habilita el acceso a los puertos en WINXP, seguí un tutorial donde te explican paso a paso que hacer http://sheepdogguides.com/dt4j.htm pero me encuentro con un problema, no me compila el código que alli viene en el tutorial, el procedimiento que puse es el siguiente:

procedure TForm1.ScrollBar1Change(Sender: TObject);
var bWriteMe, bErr:byte;
function Out32(wAddr:word;bOut:byte):byte; stdcall; external 'inpout32.dll';
begin
bWriteMe:=ScrollBar1.position;
Label1.caption:=inttostr(bWriteMe);
bErr:=(Out32($378,bWriteMe)); // en donde $378 es la direccion del puerto
end;

Al tratar de compilarlo me marca el siguiente error:

[Error]inpout.pas(29); Invalid compiler directive: 'EXTERNAL'
[Fatal Error] Projetinpout.dpr(5);Could not compile used unit 'inpout.pas'

No se porque marca este error porque incluso ya intente con otro programa mandar a llamar a una libreria de la misma forma:

function pcDLLVersion:string; stdcall external 'DD50demo.dll';

Y NO HAY NINGUN PROBLEMA, EL PROGRAMA FUNCIONA A LA PERFECCION, haciendo notar que usa el mismo external que me marca error en el inpout.pas

NECESITO AYUDA URGENTE PORFAVOR, ya he checado segun yo los mas comunes posibles errores, ya comprobe que la inpout32.dll se encuentre en la misma carpeta donde tengo mi programa, etc.

ALGUNA SUGERENCIA?????

espero su respuesta con ansias porque me urge terminar este proyecto

de antemano MUCHAS GRACIAS

Picospunk