佳博80系列打印机驱动开发DLL支持C#的过程
2017-10-22 23:19
239 查看
最近小编的公司需要使用到佳博的打印机进行一系列的打印开发以及智能驱动,所以小编联系了佳博的官方客服,然后找到的他们的官方SDK开发包,进行开发,由于小编使用的是.net平台的C#语言,而官方的开发包里面没有对于C#的支持,所以弄出了一系列的情况,和大家分享一下,最后说一下如何用VB支持的DLL的API驱动去调用API。
资料地址:http://download.csdn.net/download/tr1912/10035062
如上图所示,在VB中是这样去调用DLL的,和C#中是类似的,我们来看一下C#中的dll调用:
我们可以看到除了语法上有些许的不同之外,其他的其实都是一样的。我们在调用这些用老版本IDE或者规范生成的DLL的时候一定要记得把项目改为X86支持的,否则驱动的时候会有意想不到的情况。
我们可以通过看里面的API文档(详见上方资源)可以发现,我们在文档中见到的变量类型还有返回值,和在VB中见到的是有差别的,当时我只是看到了VB中可以使用的资源,然后通过这些资源,改写到了C#中,结果出现了不能使用的问题,并且说是调用堆栈的不匹配的问题,这个问题说的就是API里面定义的标准和自己写的程序实际定义的不一样,比如在C#中是int类型,到了VB中就是long类型(详见上方代码比较),对于这一点需要注意语言的开发区别。只要按照文档中说的走一般就没有问题了。
在这里我只是陈述一下连接打印机的一个实例,并且是用USB进行连接的,由于使用网络进行连接的需要用到socket的接口通信,所以这里不再做麻烦的陈述。
我们会在API文档中找到一个函数POS_Open,这个函数用来使用我们的连接驱动,访问我们的打印机,并且可以获得打印机的状态。
我们可以通过如下语句访问:
int state = POSDLLFunctions.POS_Open("GP-L80160 Series", 0, 0, 0, 0, POSDLLFunctions.POS_OPEN_PRINTNAME); 访问成功后,state中会存储了当前打印机句柄的一些数字,我们可以通过这些东西去访问到打印机这个本体。
其他函数的使用,在VB源程序中都有相应的书写,大家可以直接转化过来使用。
资料地址:http://download.csdn.net/download/tr1912/10035062
一、驱动分析
我们看到了在VB中API驱动的样子,包括了所有的DLL读取和方法,都和API文档中有很大的区别,如图:如上图所示,在VB中是这样去调用DLL的,和C#中是类似的,我们来看一下C#中的dll调用:
我们可以看到除了语法上有些许的不同之外,其他的其实都是一样的。我们在调用这些用老版本IDE或者规范生成的DLL的时候一定要记得把项目改为X86支持的,否则驱动的时候会有意想不到的情况。
我们可以通过看里面的API文档(详见上方资源)可以发现,我们在文档中见到的变量类型还有返回值,和在VB中见到的是有差别的,当时我只是看到了VB中可以使用的资源,然后通过这些资源,改写到了C#中,结果出现了不能使用的问题,并且说是调用堆栈的不匹配的问题,这个问题说的就是API里面定义的标准和自己写的程序实际定义的不一样,比如在C#中是int类型,到了VB中就是long类型(详见上方代码比较),对于这一点需要注意语言的开发区别。只要按照文档中说的走一般就没有问题了。
二、驱动使用
这里除了开发之外,我们还要讲一下使用的问题,其实在他的API定义程序中就已经可以见到最最简单的使用了。包括一个实例的程序和一个调用接口进行通信的一个样例。在这里我只是陈述一下连接打印机的一个实例,并且是用USB进行连接的,由于使用网络进行连接的需要用到socket的接口通信,所以这里不再做麻烦的陈述。
我们会在API文档中找到一个函数POS_Open,这个函数用来使用我们的连接驱动,访问我们的打印机,并且可以获得打印机的状态。
我们可以通过如下语句访问:
int state = POSDLLFunctions.POS_Open("GP-L80160 Series", 0, 0, 0, 0, POSDLLFunctions.POS_OPEN_PRINTNAME); 访问成功后,state中会存储了当前打印机句柄的一些数字,我们可以通过这些东西去访问到打印机这个本体。
其他函数的使用,在VB源程序中都有相应的书写,大家可以直接转化过来使用。
相关文章推荐
- javaweb开发过程中小工具系列之支持事务的JdbcUtils
- 今天才明白VC++.net的含义: VS系列的c++编译器可以支持托管C++(类似于C#,具体请看MS在线文档),当然包括winform界面开发。
- C# WinForm开发系列 - Controls
- C#开发团队的《Future Focus》系列文章,以及第一篇中介绍的动态查找(Dynamic Lookup)
- C++如何调用C#开发的dll
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十四)地图编辑器诞生啦!
- 用c#进行移动设备开发时rda同步数据时的设置详细过程
- ASP.NET企业开发框架IsLine FrameWork系列之十二--使用Session、Cookie与安全支持
- C# 调用外部dll过程中的参数问题
- android开发实战系列(15)-- 利用android支持的库
- C# WinForm开发系列 - OWC
- javaweb开发过程中小工具系列之JavaMail发邮件
- 使用C#开发HTTP服务器系列之实现Get和Post
- Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕密度
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十六)地图自定义切片与导出
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十七)战斗前夜之构建动态障碍物系统
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十五)完美捕捉精灵之神器 -- HitTest
- [C# 开发技巧系列]使用C#操作Word和Excel程序
- 在c#中调用c++生成的dll(wince开发)
- C# 第三方DLL,可以实现PDF转图片,支持32位系统、64位系统