PDA

Visualizza la versione completa : [c] in che cartella copiare inpout32.dll??


manu86
24-03-2008, 13:12
salve
volendo provare a utilizzare la porta parallela per controllare un motore passo-passo mi sono messo a cercare nel forum ed ho visto che stato consigliato ad u utente con il mio stesso problema questo link:http://www.hytherion.com:80/beattidp/comput/pport.htm.
Qui c' un programmino in c :

/**************************************************/
/*** ***/
/*** TEST.c -- test interface to inpout32.dll ***/
/*** ( http://www.logix4u.net/inpout32.htm ) ***/
/*** ***/
/*** Copyright (C) 2003, Douglas Beattie Jr. ***/
/*** ***/
/*** <beattidp@ieee.org> ***/
/*** http://www.hytherion.com/beattidp/ ***/
/*** ***/
/**************************************************/
/* Last Update: 2006.05.14
*/

/************************************************** *****/
/* */
/* Builds with Borland's Command-line C Compiler */
/* (free for public download from Borland.com, at */
/* http://www.borland.com/bcppbuilder/freecompiler ) */
/* */
/* Compile with: */
/* */
/* BCC32 -IC:\BORLAND\BCC55\INCLUDE TEST.C */
/* */
/* */
/* Be sure to change the Port addresses */
/* accordingly if your LPT port is addressed */
/* elsewhere. */
/* */
/************************************************** *****/




#include <stdio.h>
#include <conio.h>
#include <windows.h>


/* Definitions in the build of inpout32.dll are: */
/* short _stdcall Inp32(short PortAddress); */
/* void _stdcall Out32(short PortAddress, short data); */


/* prototype (function typedef) for DLL function Inp32: */

typedef short (_stdcall *inpfuncPtr)(short portaddr);
typedef void (_stdcall *oupfuncPtr)(short portaddr, short datum);

int main(void)
{
HINSTANCE hLib;
inpfuncPtr inp32;
oupfuncPtr oup32;

short x;
int i;

/* Load the library */
hLib = LoadLibrary("inpout32.dll");

if (hLib == NULL) {
printf("LoadLibrary Failed.\n");
return -1;
}

/* get the address of the function */

inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");

if (inp32 == NULL) {
printf("GetProcAddress for Inp32 Failed.\n");
return -1;
}


oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");

if (oup32 == NULL) {
printf("GetProcAddress for Oup32 Failed.\n");
return -1;
}


/************************************************** *************/
/* now test the functions */

/* Try to read 0x378..0x37F, LPT1: */

for (i=0x378; (i<0x380); i++) {

x = (inp32)(i);

printf("port read (%04X)= %04X\n",i,x);
}



/***** Write the data register */

i=0x378;
x=0x77;

(oup32)(i,x);

printf("port write to 0x%X, datum=0x%2X\n" ,i ,x);

/***** And read back to verify */
x = (inp32)(i);
printf("port read (%04X)= %04X\n",i,x);



e anche la libreria inpout32.dll.
la mia domanda in che cartella devo copiare questa libreria???ho provato a metterla in
system,system32,WINDOWS ma quando vado ad eseguire il programma ho:

LoadLibrary Failed

come posso fare???
ho compilato ed eseguito con visual c++..............

shodan
24-03-2008, 14:23
Nella LoadLibrary inserisci il path completo della dll.

manu86
24-03-2008, 14:34
ok grazie

Samuele_70
24-03-2008, 16:23
Puoi anche lasciare la LoadLibrary() cos com'
e metti la dll nella stessa cartella dov' l'eseguile.

Loading