inpou32.dll не работает на моем компьютере - PullRequest
0 голосов
/ 19 сентября 2010

Я попытался запустить следующий код на моем ПК. С портом 0x378 (данные LPT1) он работает нормально. Но с PORT 0x379 (статус LPT1) он всегда возвращает 126 независимо от того, что я вывел в предыдущей строке. 0x37A тоже работает. У меня Windows XP

#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;
}

1 Ответ

0 голосов
/ 19 сентября 2010

Порт 0x379 является входным портом. Вы не можете изменить значение, которое оно сообщает в программном обеспечении, вам фактически нужно подать напряжение на контакты 10, 11, 12, 13 или 15. Соответственно сигналы Ack, * Busy, PaperOut, Select и Error.

...