inpou32.dll 在我的计算机上无法运行
我尝试在我的电脑上运行以下代码。 使用 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;
}
I've tried to run the following code on my PC.
With PORT 0x378 (LPT1 data) it works fine.
But with PORT 0x379 (LPT1 status) it always returns 126 no matter what I output in the previous line. 0x37A works too. I have 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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
端口 0x379 是一个输入端口。您无法更改软件中报告的值,实际上必须在引脚 10、11、12、13 或 15 上施加电压。分别为 Ack、*Busy、PaperOut、Select 和 Error 信号。
Port 0x379 is an input port. You cannot change the value it reports in software, you actually have to put a voltage on pin 10, 11, 12, 13 or 15. Respectively the Ack, *Busy, PaperOut, Select and Error signals.