Hallo,
wir haben hier zwei IO-Warrior 56, die an einem Rechner angeschlossen, jedoch von zwei verschiedenen Programmen bedient werden sollen.
Dazu habe ich eine DLL geschrieben (shared memory), auf die beide Programme zugreifen und sich das Handle für den IO-Warrior holen sollen.
Soweit funktioniert alles, die zwei Programme bekommen die unterschiedlichen Handles. Lasse ich jetzt Programm 1 den IO-Warrior 1 lesen (IO-Warrior schickt Read-Anfrage an meine DLL, die dann abfragen soll und die Werte zurückgibt), klappt alles. Sobald ich das Programm 2 starte, bekomme ich eine "Zugriffsverletzung an Leseposition 0x000000a8" in der iowkit.dll.
Ist mit der iowkit.dll ein solches Vorhaben überhaupt möglich? Dass nur ein Programm auf die DLL zugreifen kann, weiß ich, jedoch sollte dies ja kein Problem sein, da meine Programme die Abfrage an meine DLL weiter geben und diese dann als ein Prozess den Zugriff erledigt.
Danke,
Bios
Zugriff von mehreren Programmen
Moderator: Guido Körber
-
- Site Admin
- Posts: 2856
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Die 1.5 iowkit.dll sollte eigentlich verhindern das zwei Programme auf einen IOWarrior zugreifen koennen.
Es gibt ein Windows-Problem mit dem Zugriff auf HID-Geraete allgemein. Wenn zwei Programme von einem Geraet lesen, dann bekommt jedes eine eigene Kopie der Daten. Das verdirbt komplett die Funktion, da man nicht mehr weiss ob das die eigene Antwort auf eine Anfrage ist oder die eines anderen Programms.
Aus diesem Grund wird gerade das 2.0 API erarbeitet, das aus einem Serverprozess besteht der exklusiv die IOWarrior verwaltet.
Es gibt ein Windows-Problem mit dem Zugriff auf HID-Geraete allgemein. Wenn zwei Programme von einem Geraet lesen, dann bekommt jedes eine eigene Kopie der Daten. Das verdirbt komplett die Funktion, da man nicht mehr weiss ob das die eigene Antwort auf eine Anfrage ist oder die eines anderen Programms.
Aus diesem Grund wird gerade das 2.0 API erarbeitet, das aus einem Serverprozess besteht der exklusiv die IOWarrior verwaltet.