AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Probleme mit io.dll

Ein Thema von lprade · begonnen am 22. Jun 2006 · letzter Beitrag vom 25. Jun 2006
Antwort Antwort
lprade

Registriert seit: 19. Okt 2005
14 Beiträge
 
#1

Probleme mit io.dll

  Alt 22. Jun 2006, 11:29
Hallo zusammen,
Ich möchte den Parallelport über den io.dll (www.geekhideout.com/iodll.shtml) ansteueren. Habe dazu ein Programm geschrieben. Den .dll kann ich über die Funktion "isdriverinstalled" auch anrufen, und bekomme ein boolean True zurück. Wenn ich aber versuche über die prozedure Portout() alle pins auf high zusetzten, kann ich das Programm nicht einmal mehr compilieren. Ich erhalte die Fehlermedlung "access violation at 0x7c947a50" und ein Fenster "project stack" und "Project2" wird geöffnet. Ausserdem wird die ganze Ansicht des Compliers geändert, es spielt einfach alles verückt. Der Sourcecode meines Programms ist:

Delphi-Quellcode:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation
procedure Portout(Port:Word; Data:Byte); stdcall; external 'io.dll'; //deklariere die beiden Prozeduren, die ich benutzen möchte
procedure Isdriverinstalled(i: Boolean); stdcall; external 'io.dll';
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var Isdriverinstalled:boolean;
begin
if Isdriverinstalled then showmessage('.dll gefunden') else showmessage('.dll nicht installiert');
end; //Auf Knopfdruck wird überprüft, ob der .dll vorhanden ist

procedure TForm1.Button2Click(Sender: TObject);
begin
portout($0378,255); //Hier versuche ich alle Ports of high zusetzten, und hier scheint das Problem zu sein, denn ohne
                    //diesen Teil funktionert das Programm problemlos
end;

end.
Wisst ihr was ich falsch mache? Habe eigentlich fast genau ein Beispiel hier im Forum nachgearbeitet. Kann mir jemand helfen?
Vielen Dank
Ludwig
  Mit Zitat antworten Zitat
lprade

Registriert seit: 19. Okt 2005
14 Beiträge
 
#2

Re: Probleme mit io.dll

  Alt 22. Jun 2006, 13:33
Nochwas,
Ich habe gerade eben nochmal die Seite von IO.dll durchgeschaut und habe entdeckt, dass man irgendwo am Anfang des Programms LOADIODLL aufrufen muss. Kann es daran liegen? Wo much ich den das LOADIODLL hinschreiben und wie sieht der Syntax aus? hat das irgendjemand schonmal gemacht? Wäre für jede Hilfe sehr dankbar.
Ludwig
  Mit Zitat antworten Zitat
lprade

Registriert seit: 19. Okt 2005
14 Beiträge
 
#3

Re: Probleme mit io.dll

  Alt 25. Jun 2006, 09:52
Hallo?
Hat denn noch niemand den io.dll benutzt?
Ludwig
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Probleme mit io.dll

  Alt 25. Jun 2006, 10:13
Wozu diese Boolean-Variable im OnClick-Eventhandler? Und die Signatur deiner IsInstalled-Prozedur entspricht nicht der der DLL.
function IsDriverInstalled : Boolean; [edit]Habe ich das richtig verstanden, der Compiler wirft die AV? Nicht das Programm selbst?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz