# inpout32.dll



## nameac (30. Juli 2006)

moin,
ich habe das test programm zu dieser dll compeliert mit vc++ 6.0 fehlerfrei, dann habe ich die inpouttest.exe ausgeführt funktioniert auch, aber wenn ich z.B. inpouttest write 378h 0 eingebe gibt das programm die antwort written to port 378
aber wenn ich inpouttest read 378h eingebe antwortet das progamm immer 
Data read from address 378 is 255 d.h. all meine pins sind ständig auf 1 gesetzt stimmt auch hab ich mit nem gerät nachgemessen keine veränderung der pins 2- 9 nach dem schreibvorgang auf die datenleitungen.

```
// InpoutTest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
/* ----Prototypes of Inp and Outp--- */

short _stdcall Inp32(short PortAddress);
void _stdcall Out32(short PortAddress, short data);

/*--------------------------------*/

int main(int argc, char* argv[])
{

	int data;

	if(argc<3)
	{
		//too few command line arguments, show usage
		printf("Error : too few arguments\n\n***** Usage *****\n\nInpoutTest  read <ADDRESS> \nor \nInpoutTest write <ADDRESS> <DATA>\n\n\n\n\n");
	} 
	else if(!strcmp(argv[1],"read"))
	{

		data = Inp32(atoi(argv[2]));

		printf("Data read from address %s is %d \n\n\n\n",argv[2],data);
	
	}
	else if(!strcmp(argv[1],"write"))
	{
		if(argc<4)
		{
			printf("Error in arguments supplied");
			printf("\n***** Usage *****\n\nInpoutTest read <ADDRESS> \nor \nInpoutTest write <ADDRESS> <DATA>\n\n\n\n\n");
		}
		else
		{
		Out32(atoi(argv[2]),atoi(argv[3]));
		printf("data written to %s\n\n\n",argv[2]);
		}
	}



	return 0;
}
```
im bios steht im menü peripherie alles auf auto oder enable 

woran könnte es denn noch liegen, das es nicht ?


----------



## Endurion (31. Juli 2006)

Einen direkten Hardware-Zugriff gibt es unter der NT-Familie (Gottseidank) nicht mehr. Du möchtest da auf die parallele (Drucker-) Schnittstelle zugreifen?

Da wirst du dich um eine Dritt-Library bemühen müssen, da der Zugriff für so etwas über Treiber erledigt werden muss.

Wenn du darauf abzielst, rauszufinden, ob ein Drucker Papier-leer meldet, muss ich dich enttäuschen. Das ist nicht mehr möglich.

Anmerkung: Im Prinzip ist es möglich, einer der Druckerzustände liefert dieses Port-Byte, aber die Drucker-Treiber-Hersteller sch***en darauf und setzen das Byte nicht (hab bis jetzt keinen einzigen gefunden, der es macht).


----------



## nameac (31. Juli 2006)

um auf die datenleitungen vom parallel port zuschreiben benutze ich den triber der durch die inpout.dll zur verfügung gestellt wird. das ist doch ein treiber der einem den zugriff gestattet oder?


----------



## Endurion (1. August 2006)

Ich war mal wieder zu schnell:

Sorry, du hast recht, du hast da ja schon eine Dritt-Library für den Zugriff.

Dir funkt da dann offensichtlich etwas dazwischen. Hast du einen Drucker am Parallel-Port installiert? Wenn da ein Druckertreiber auch zugreifen will, kann das durchaus Mischmasch geben.


----------



## nameac (1. August 2006)

nein ich hatte an diesem coputer noch nie einen drucker angeschlossen, aber in wie fern mitgelieferte treiber vom betriebssystem da eine rolle spielen weiß ich jetz nich.


----------



## nameac (2. August 2006)

weiß jemand rat warum kann ich mit dem befehl 

write 378h 0

ausführen aber er schreibt nichts auf den parallel port weil

read 378h 

immer den wert 255 liefert


----------



## nameac (3. August 2006)

mal anders gefragt hat jemand von euch schon mal erfolgreich mit der inpout32.dll und vc erfolgreich auf den parallel port zugegriffen


----------

