研华设备驱动程序编程使用介绍(本文件内容适用于所有数字量和模拟量采集卡)这一部分包括了创建DA&C应用的基本信息,介绍了设备驱动程序文件的特点,讲解了基本的使用方法.
VisualC++5.
0或更高版本VisualBasic5.
0或更高版本Delphi4.
0或更高版本BorlandC++5.
0或C++builder1.
0或更高版本如果您正在使用的开发工具不是上面所述的几种,请仔细查阅您所使用的工具的文档,了解该工具如何调用动态连接库来创建应用程序.
Windows95/98/NT/2000的32位DLL的函数库是动态连接,这就是说动态连接库并不直接编译到应用程序的可执行文件中,而只是将动态连接库的路径信息保存在可执行文件中.
设备驱动程序只是在可执行程序执行过程中动态连接库被调用的时候才被连接到应用程序.
导入库(*.
LIB)包含了它们它们的动态连接库定义的外部函数.
它们隐含了动态连接库的位置.
如何为您的应用程序引入动态连接库的路径信息,例如:是通过导入函数库还是通过函数声明的方法,取决于您所使用的编程工具.
使用函数原型是良好的编程习惯,这也是为什么设备驱动程序总是被打包成函数原型形式.
安装工具为您选择的的开发工具拷贝正确的的原型文件.
如果你不打算使用研华驱动程序支持的开发工具,那么您需要创建您自己的函数原型.
按照下面的步骤开始对研华的硬件设备编程应用:这一部分我们推荐您采用研华的设备驱动程序结合微软的可视化平台来开发您的系统!
研华设备驱动程序支持VisualC++5.
0及其以上的版本.
要使用DA&C函数,需要按照下面的步骤使用研华驱动程序提供的DLL(动态连接库,DynamicLinkedLibrary)1.
象编写一般的Windows应用程序一样创建您的应用程序代码,在这些代码中可以象典型的函数调用一样调用研华驱动程序中提供的动态连接库中(DLL)的函数.
2.
声明在您的程序中用到的函数,即:包含动态连接库(DLL)的头文件,该函数声明了所有的动态连接库中的函数,如下所示:#include"driver.
h"3.
将动态连接库的(DLL)的导入库(例如,"ADSAPI32.
LIB")加到工程模块中.
依照下面的步骤即可编写一个简单的VisualC++Windows程序:1.
点击File|New菜单,创建一个新工程图(1)创建VisualC++应用程序2.
选择新工程的类型为"Win32Application",确定应用平台为"Win32",并为其指定一个文件目录.
图(2):确定应用程序类型和指定一个工程目录3.
要使用研华提供的设备驱动程序及其库函数来开发应用程序,必须首先在在VisualC++添加头文件,单击图中所示的Files菜单向,找到driver.
h文件并加入到工程中图(3)在您的工程中加入驱动程序的头函数4.
加入driver.
h文件之后,就可以在VC的工作区中看到它.
图(4)将头文件引入工程目录后5.
在加入头文件之后,这个文件定义了研华在动态连接库中要用到的函数和变量,这些变量和函数都可以在这个新创建的工程中使用.
图(5)在工程中的头函数6.
在工作区的ClassView中,就可以编辑自己所需要的代码,其中使用到具体的研华提供的库函数的时候可以参照DeviceDriverUserManual.
图()创建你自己的应用程序67.
为了能够调用所有的动态连接库,我们需要在工程中导入ADSAPI32.
LIB,同加入driver.
h的方法类似,我们通过Project-〉Setting选项来进行设置,具体过程如下:图()将动态连接库导入工程78.
单击Setting菜单后弹出ProjetSetting对话框,选择其中的Link属性页,在其中的Object/Librarymodules框里面输入adsapi32.
lib的路径,然后点击OK按钮退出该对话框,这样编译程序的时候就可以把adsapi32.
lib函数库编译并连接到执行文件中.
图将动态连接库与工程相连接(8)在VC下面加入动态连接库比较简单的办法是:直接将所需的头文件和库函数拷贝到您的工程文件夹下面,然后再依照上面的方法将头文件和库函数导入您的工程.
使用visualBasic来创建应用程序:要正确的使用DA&C函数,你必须按照下面的步骤来使用DA&C的动态连接库1.
择File|NewProject菜单创建工程,这一点同其他的类型的程序创建是完全一样的.
图(9)创建新的VB工程为了能够使用研华的的驱动程序来开发数据采集工程,首先需要将研华驱动程序的头文件包含到工程中,具体方法是选择View|ProjectExplorer菜单、单击3ProjectExplorer按钮之后,弹出ProjectExplorer窗口,在该窗口中单击右键,显示了一些可选的菜单单击AddFile菜单添加为的AdvantechVisualBasic库文件"Driver.
bas,随后会弹出文件"选择对话框.
通常情况下着头文件是包含在驱动程序安装的默认路径下面.
下面如何调用动VB态连接库请参考使用手册.
VB加入库文件后就可以浏览工程中用到的常量,参数声明和动态连接库中的函数.
创建您自己的应用程序代码,并且使用动态连接库中的函数.
使用BorlandDephi在Dephi下面使研华提供的用动态连接库,需要按照下面的步骤操作;)选择1File|NewApplication创建一个新的工程2)选择View|ProjectManager来设计应用程序窗体,编写代码.
单击该菜单后会弹出一个ProjectManager对话框.
3.
首先通过Project|AddtoProject在工程中添加Advantech32位设备驱动程序的头文件,单击该菜单会弹出一个文件查找的对话框,可以从中选择所需的动态连接库文件.
4.
选择动态连接库的库文件"Driver.
pas"并确定,ProjectManager中将会显示该头文件及其位置.
5.
双击头文件,就可以看到在程序中可以调用的常量的定义,参数声明和动态连接库函数.
6.
创建你自己的Delphi程序界面代码.
这时你可以参照驱动程序光盘上面的例子程序和相关代码,设计完毕之后单击Run菜单测试程序.
为Windows95/98/2000/NT提供的驱动程序包括一个动态连接库和一个内核系统文件,主要的函数都包含在内核模式的设备驱动程序里面.
动态连接库则提供了一个简单的编程接口.
驱动程序的动态连接库文件,ADSAPI32.
DLL,在95/98系统的SYSTEM文件夹下面;2000/NT系统在SYSTEM32文件夹下面;内核设备驱动程序文件,ADSIO.
SYS在Windows\Drivers目录下面.
除了上述的系统文件外,驱动程序还带有其他的一些有助于您开发DA&C应用程序的文件.
这些文件也都存在于您驱动程序安装的目录中.
注:"Driver.
bas"包含了所有的动态连接库函数的原型,在开发您的数据采集程序的时候您需要将这个文件包含到您的源文件中去.
使用BorlangC++或C++Builder安装好设备驱动程序之后,在C++Builder5.
0以上的版本中可以按照如下的步骤开始编程:1)使用File|NewApplication创建一个新的工程2)添加变量:……staticDEVFEATURESDevFeatures;……2)添加这一句代码之后#includeinclude\driver.
h",编译程序就可以看到如下的driver.
h中的代码.
2)使用Project/AddtoProject…添加函数库(AdsApi32bcb.
lib)到工程中:3)编辑程序界面如下图:4)在单击界面上面的按钮可以进入命令编辑界面,依次添加程序处理代码void__fastcallTForm1::butStartClick(TObject*Sender){}具体代码参见例子程序如果您使用的C++Builder比较低的版本那么就可能需要一些复杂的转换工作:使用类库创建一个新工程,如果你希望直接使用我们提供的例子程序中的代码,那么1.
在创建程序的时候,不要选择使用类.
OWL2.
如果函数库(例如:\ADSAPI\EXMPLES\BC\LIB\ADSAPIBC.
LIB)与您的Borlandc++版本不兼容,您需要使用implib工具创建新的.
LIB文件.
Syntax:IMPLIB[options]libname[.
lib]dllname[.
dll]语法:IMPLIB[可选]库名[.
lib]动态连接库名[.
dll]例子:IMPLIBC:\ProgramFiles\Advantech\Adsapi\Examples\BC\LIB\ADSAPIBC.
LIBC:\WinNT\ADSAPI32.
DLL注:提供给BorlandC++/BorlandC++Builder的头函数同提供给VisualC++的头文件是完全一样的.
1.
在工程中加入您自己的代码2.
在工程的ProjectOptions选项的Processor中将数据格式改成QuadWord(8-Byte).
因为VisualC++VisualBasic/Delphi的默认数据格式就是四字节,你就不要在这些程序的环境中改变配置了.
思考:除了了解如何使用研华的驱动程序之外,你还要需要考虑到在使用动态连接库时可能发生的一些问题.
这一部分简单介绍了这些问题的本质,下面的一节给出了这些问题的解决办法(不同的编程语言,解决的办法也各不相同)内存分配:在Windows应用程序中分配内存要比在非Windows应用程序受到更多的限制,因为Windows有它自己的内存分配函数,这就要求你通过Windows内存管理器来分配内存.
通常情况下你需要使用Windows提供的内存分配函数来分配内存,而不是使用个别语言自己提供的字符串传递:当Windows动态连接库调用一个字符串作为传递参数,它需要一个指向null结尾的字符串.
不同的编程语言需要不同的字符串处理来支持这种类型.
参数传递:你可以采用传值/传地址的方式来传递参数,而不同的编程语言有不同的默认设置.
你必须使用传值/传址方式传递特定类型的参数给每个一Windows函数.
注:DRV_GetAddress函数只是在VisualBasic中才用到.
因为在VC++或者是Delphi中,用户可以使用指针变量或者取得一个变量的地址.
然而,在VisualBasic中没有Windows标准函数来取得变量的内存地址.
而Advantech的设备驱动程序多数函数需要一个地址参数作变量
RAKsmart怎么样?RAKsmart发布了2021年中促销,促销时间,7月1日~7月31日!,具体促销优惠整理如下:1)美国西海岸的圣何塞、洛杉矶独立物理服务器低至$30/月(续费不涨价)!2)中国香港大带宽物理机,新品热卖!!!,$269.23 美元/月,3)站群服务器、香港站群、日本站群、美国站群,低至177美元/月,4)美国圣何塞,洛杉矶10G口服务器,不限流量,惊爆价:$999.00,...
Hostodo是一家成立于2014年的国外VPS主机商,现在主要提供基于KVM架构的VPS主机,美国三个地区机房:拉斯维加斯、迈阿密和斯波坎,采用NVMe或者SSD磁盘,支持支付宝、PayPal、加密货币等付款方式。商家最近对于上架不久的斯波坎机房SSD硬盘VPS主机提供66折优惠码,适用于1GB或者以上内存套餐年付,最低每年12美元起。下面列出几款套餐配置信息。CPU:1core内存:256MB...
profitserver怎么样?profitserver是一家成立于2003的主机商家,是ITC控股的一个部门,主要经营的产品域名、SSL证书、虚拟主机、VPS和独立服务器,机房有俄罗斯、新加坡、荷兰、美国、保加利亚,VPS采用的是KVM虚拟架构,硬盘采用纯SSD,而且最大的优势是不限制流量,大公司运营,机器比较稳定,数据中心众多。此次ProfitServer正在对德国VPS(法兰克福)、西班牙v...
delphi教程为你推荐
vc组合天然维生素c和合成维生素c有区别吗杰景新特杰德特这个英雄怎么样www.sesehu.comwww.121gao.com 是谁的网站啊www4399com4399小游戏 请记住本站网站 4399.urlwww.mfav.org手机登录WWW.brcbc.org 能注册么关键词分析如何进行关键词指数分析1377.com真实.女友下载地址谁有盗车飞侠侠盗飞车罪恶都市全部秘籍ps手柄版的干支论坛天干地支常识?4399宠物连连看2.5我是华为手机,想下载宠物连连看2.5单机游戏
asp虚拟主机 二级域名 域名主机管理系统 查询ip地址 国外服务器 免备案空间 流媒体服务器 老左博客 建立邮箱 me空间社区 169邮箱 中国电信宽带测速网 免费cdn 登陆空间 外贸空间 主机管理系统 石家庄服务器托管 日本代理ip 测试网速命令 godaddy空间 更多