inpou32.dll在我的电脑上无效

时间:2010-09-19 13:49:12

标签: c++ parallel-processing port status lpt

我试图在我的电脑上运行以下代码。 使用PORT 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 :(得分:0)

端口0x379是输入端口。您无法更改它在软件中报告的值,您实际上必须在引脚10,11,12,13或15上施加电压。分别为Ack,* Busy,PaperOut,Select和Error信号。