Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите в написании драйвера для нестанд устройства [D7, Win95/98]


миша ©   (2004-05-25 17:11:00) 

Я написал драйвер на паскале а программа (на делфи) не загружает его и не выдаёт ошибки
листинг DLL
Library ads1286dll;
var n,e,f:byte;
   b:integer;
   zn,d:real;

procedure acquisition;export;
   begin
      b:=$3F8; n:=12;
      port[b+4]:=1;
      port[b+3]:=64;
      port[b+4]:=0;d:=0;
      port[b+4]:=2;port[b+4]:=2;
      port[b+4]:=2;port[b+4]:=0;
      port[b+4]:=2;port[b+4]:=2;
      port[b+4]:=2;port[b+4]:=0;
      port[b+4]:=2;port[b+4]:=2;
      port[b+4]:=2;port[b+4]:=0;
      for f:=0 to n-1 do
          begin
             port[b+4]:=2;
             e:=port[b+6] and 16;
             port[b+4]:=0;
             if e=16 then d:=d+exp((n-1-f)*ln(2));
          end;
      d:=(5*d)/(exp((n)*ln(2))-1);
      port[b+4]:=1;
      zn:=d;
   end;
exports
 acquisition;
begin
end.
листинг проги
unit vo;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Button1: TButton;
   procedure FormActivate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
procedure acquisition ; external 'ads1286d.dll';
procedure TForm1.FormActivate(Sender: TObject);
var zn:real;
begin
Label1.Caption:= floatToStr(zn);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

end.
а в паскале вот это работает
program volt;
uses crt;
var n,e,f:byte;
   b,g:integer;
   d:real;
procedure init;
   begin
      clrscr;
      b:=$3F8; n:=12;
      port[b+4]:=1;
      delay(100);
      port[b+3]:=64;
      delay(500);
   end;
procedure acquisition;
   begin

      port[b+4]:=0;d:=0;
      port[b+4]:=2;port[b+4]:=2;
      port[b+4]:=2;port[b+4]:=0;
      port[b+4]:=2;port[b+4]:=2;
      port[b+4]:=2;port[b+4]:=0;
      port[b+4]:=2;port[b+4]:=2;
      port[b+4]:=2;port[b+4]:=0;
      for f:=0 to n-1 do
          begin
             port[b+4]:=2;
             e:=port[b+6] and 16;
             port[b+4]:=0;
             if e=16 then d:=d+exp((n-1-f)*ln(2));
          end;
      d:=(5*d)/(exp((n)*ln(2))-1);
      port[b+4]:=1;
   end;
procedure afihe;
   begin
      acquisition;
      d:=(int(1000*d))/1000;
      writeln(d);
      delay(1000);
   end;
begin
   init;
   for g:=1 to 200 do
     begin
       afihe;
     end;
end.
ответ в bistec@vlz.tkscom.ru


tesseract   (2004-05-26 10:21:00) [1]

Сё не драйвер сё просто библиотека. И в 9х ещё есть шанс что она заработает, то в nt никаких - тебя не пустят. Качай спедрова на эту тему.


Игорь Шевченко   (2004-05-25 22:07:00) [2]

http://www.lvr.com/parport


N170   (2004-05-25 21:05:00) [3]

IMHO, "драйвером" Windows ЭТО не является.


Наверх

Титульная страница Поиск, карта сайта Написать письмо