没有合适的资源?快使用搜索试试~ 我知道了~
首页twain驱动详解,完全剖析
资源详情
资源评论
资源推荐

驱动详解
工作组是一个非盈利的国际组织。它旨在提供一个统一的标准接口,通过该接
口就可以实现应用程序与图像输入设备间的通讯。其实该标准目前已经成为了应用程序与
图像输入设备间通讯的事实标准。
的文件组成
共包括 个二进制文件。如果要使用该接口,就必须要保证他们被成功地安装在
本地计算机上。
文件名
位应用程序的支持文件, 位程序使用 通讯必须使用该文件。
位应用程序的支持文件, 位程序使用 通讯必须使用该文件。
实现 位应用程序与 位数据源进行通讯,它运行时不可见。
实现 位应用程序与 位数据源进行通讯,它运行时不可见。
注意:在 环境下 位数据源不能够正常工作。
在 操作系统中 ,!"#$% 已经把这些文件作为系统
文件随同操作系统一起发布了。你可以在 安装目录中查找到这些文件。如果我
们要编程来实现对 的访问,还需要最重要的头文件。你通过访问该 &%%'(
%)#*+,-.+%)& 地址来获得 提供的头文件。
好了,现在就让我们来了解一下 的结构吧。
的结构
依靠三个组件协同完成与图像设备的通讯和数据传输工作,这三个组件就是
''.")%、/0#"+!))*+# 和 /0#"+。
组件
说明
''.")%
就是你要编写的应用程序。

/0#"+!))*+#
是由 提供的一个 /0#"+ 的管理器,它不仅可以收集本地系统已经安装了的图像
设备,还可以根据需要去加载设备。同时,它最重要的功能是担任 ''.")% 与
/0#"+ 通讯的桥梁。(其实,它就是我们前面提到的组成文件中的 .. 文件。)
/0#"+
在这里可以看作是图像设备。事实上它是由设备厂家提供的一个 .. 文件。这个 .. 文件是
支持 %) 接口的。该文不讨论关于 %) 在 /0#"+ 中的应用。
它们的层次结构图如下:
从该图我们可以看到,''.")% 要从 /0#"+ 获得图像数据,必须通过
/0#"+!))*+# 传递来实现。''.")% 与 /0#"+!))*+# 间的通讯是靠调用
提供的 /!%#1 函数实现。而 ''.")% 不能直接与 /0#"+ 通讯,
/0#"+!))*+# 与 /0#"+ 间的通讯是靠调用 提供的 /%#1 函数实现(在
这里,我们不用关心 /0#"+!))*+# 如何去调用 /%#1 函数。)。
的用户界面
当我们使用 接口去获得图像数据的时候,会涉及到一些的用户界面,首先是我们
的应用程序界面,然后是 /0#"+!))*+# 提供的用户界面以及图像设备/0#"+ 所提供
的用户界面。
这些用户界面如下:
在我们的应用程序中,可以通过“选择设备”来打开 /0#"+!))*+# 的标准用户界面。
/0#"+!))*+# 的界面由 /0#"+!))*+# 提供。在这个界面中可以让用户选择他想要
使用的图像设备。选中想要的设备后,再通过“获取…”来打开图像设备(/0#"+)提供的
用户界面进行现应的操作。(注:/0#"+ 提供的界面会因为你使用的图像设备不同而有
差异。)
对于这些界面, 提供了非常灵活的处理方法。对于 /0#"+!))*+# 提供的用户
界面以及图像设备/0#"+ 所提供的用户界面,我们可以选择是否显示它们,甚至我们还
可以按自己的要求去改写这些用户界面。
的接口函数
要编写应用程序实现与支持 标准的图像设备通讯,只需要了解上面提到的
/!%#1 接口函数。 定义了大约 个操作消息。你只要把这些消息通过

/!%#1 函数发给 /0#"+!))*+#,就可以实现对选定的 /0#"+ 进行相应的操作。
/0#"+!))*+# 会分辨那些消息属于自己,那些消息是该转发给 /0#"+。
在介绍 /!%#1 前,我们先来了解一下的 定义的消息格式。 把它定
义的操作称为 #'.+% 操作,就是每个操作用三个定义的参数来表示。这个三个参数用不
同前缀名来区分。每个 #'.+% 操作都是唯一的,不会有歧意,它们代表一个特定的操作
行为。这三个参数类型分别是 )%)2#0'前缀名 2 、)%)#*03+%前缀名
和 !+)*+前缀名 !/2 ,每个参数都包含有各自的信息。比如:
2455!/25/! 就表示一个打开 /0#"+!))*+# 的操
作,这些参数在 6 中都有定义。其他的操作设置扫描仪的分辨率、获得设备支持
的功能等等… 你可以去查看 的参考手册,我将在后面编程应用中介绍几个最常用
的操作。
现在,我们明白了 定义的 #'.+% 操作,但是这还不够。在使用 /!%#1 前,
必须要加载 文件以获得 /!%#1 函数指针。注意:在你程序中应该
添加前面提到的 6 头文件哦7
/!854.'/!%#19:/!%#1 入口函数的指针
6!5&/!9:).. 句柄
;;
:加载 文件
$&/!<)=#)#1>> 7<
?
$&/! :检查 是否加载
?
$.'/!%#1</!854 2+%#"#+&/!@!/5
4 7<
?
:成功获得 /!%#1 函数指针9
A
A
A
剩余12页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论8