WEB开发网
开发学院软件开发VC 用VC实现PC并行端口数字信息的输入/输出 阅读

用VC实现PC并行端口数字信息的输入/输出

 2010-06-27 20:41:59 来源:WEB开发网   
核心提示:四、PC并行口数字输入/输出的VC实现由于Windows对系统底层操作采取了屏蔽的策略,因而对用户而言,用VC实现PC并行端口数字信息的输入/输出(4),系统变得更为安全,但这却给众多的硬件或者系统软件开发人员带来了不小的困难,第二个参数设置为false;(4):重新启动系统;(5):以普通用户身份登录,现在可以调用W

四、PC并行口数字输入/输出的VC实现

由于Windows对系统底层操作采取了屏蔽的策略,因而对用户而言,系统变得更为安全,但这却给众多的硬件或者系统软件开发人员带来了不小的困难,因为只要应用中涉及到底层的操作,开发人员就不得不深入到Windows的内核去编写属于系统级的设备驱动程序。对并行口的读写操作就是如此,由于Windows对系统的保护,绝对不允许任何的直接I/O动作发生,所以必须带上*.dll、*.sys或*.vxd文件,这些文件用来让操作系统知道有一个特定的I/O可能会被调用。系统开机后,这些文件中的内容就会加载到内存中,一旦有对应的动作发生,就会引发I/O的实际动作。

本文只是介绍并行口作为数字I/O口的使用,不在于介绍并行I/O口驱动的编写。故本文中直接使用由 Yariv Kaplan 编写的 WinIo 库,它有如下特点:WinIo 库通过使用内核模式下设备驱动程序和 其它一些底层编程技巧绕过 Windows 安全保护机制,允许32位 Windows 程序直接对 I/O 口进行操作;

支持Windows 9x、Windows NT、Windows2000、WindowsXP环境;在Windows NT/2000/XP下,允许非 Administrator 用户应用 WinIo 应用程序;不支持中断。

注意事项:使用这个类代码时请确保不要与其它使用常规 Win32 调用操作并行端口的程序发生冲突。

WinIo库在VC应用程序中的使用(WinIo库下载)

为了在VC中能正常使用WinIo库,必须按以下步骤进行配置:

(1):将WinIo.dll、WinIo.sys、WINIO.VXD三个文件放在程序可执行文件所在目录下;

(2):将WinIo.lib添加到工程中,WinIo.lib及winio.h文件必须放在工程目录下;

(3):在StdAfx.h头文件中加入#include "winio.h"语句;

(4):调用InitializeWinIo函数初始化WinIo驱动库;

(5):调用读写IO口的GetPortVal或SetPortVal函数;

(6):调用ShutdownWinIo函数;

在非管理员权限下运行,必须首先完成以下步骤:

(1):将WinIo.dll、WinIo.sys、WINIO.VXD三个文件放在任一WinIo应用程序可执行文件所在目录下;

(2):以管理员或其它具有管理员权限的用户身份登陆;

(3):调用InstallWinIoDriver函数,第一个参数设置为WinIo.sys文件所在目录路径,第二个参数设置为false;

(4):重新启动系统;

(5):以普通用户身份登录,现在可以调用WinIo库函数;

(6):当不再需要WinIo库时,可以再次以管理员身份或其它具有管理员权限的用户身份登陆系统,调用RemoveWinIoDriver卸载该库;

WinIo库中几个函数说明:

(1):初始化与终止

bool _stdcall InitializeWinIo();
void _stdcall ShutdownWinIo();

(2):安装与卸载

bool _stdcall InstallWinIoDriver(PSTR pszWinIoDriverPath, bool IsDemandLoaded = false);
bool _stdcall RemoveWinIoDriver();

上一页  1 2 3 4 5 6 7  下一页

Tags:VC 实现 PC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接