2010-09-19 26 views
0

J'ai essayé d'exécuter le code suivant sur mon PC. Avec PORT 0x378 (données LPT1), cela fonctionne très bien. Mais avec PORT 0x379 (statut LPT1) il retourne toujours 126 peu importe ce que je produis dans la ligne précédente. 0x37A fonctionne aussi. J'ai Windows XPinpou32.dll ne fonctionne pas sur mon ordinateur

#define PORT 0x379 
#define DATA 255 
int main(int argc, char *argv[]) 
{ 
    Input input; 
    Output output; 
    HINSTANCE hInstLib = LoadLibrary(TEXT("inpout32.dll")); 
    if (!hInstLib) 
    { 
     printf("No dll.\n"); 
     system("PAUSE"); 
     return 1; 
    } 
    input = (Input)GetProcAddress(hInstLib, "Inp32"); 
    output = (Output)GetProcAddress(hInstLib, "Out32"); 
    if (!input || !output) 
    { 
     printf("No funcion.\n"); 
     FreeLibrary(hInstLib); 
     system("PAUSE"); 
     return 1; 
    } 
    output(PORT, DATA); 
    printf("status: %i\n", input(PORT)); 
    FreeLibrary(hInstLib); 
    system("PAUSE"); 
    return EXIT_SUCCESS; 
} 

Répondre

0

Port 0x379 est un port d'entrée . Vous ne pouvez pas modifier la valeur qu'il signale dans le logiciel, vous devez en fait mettre une tension sur les broches 10, 11, 12, 13 ou 15. Respectivement les signaux Ack, * Occupé, PaperOut, Select et Error.

+0

Merci, je ne le savais pas. J'ai mis de la tension sur ces broches et ça a marché. – hencz