使用DLL /驱动程序的最佳解决方案?

时间:2010-02-25 11:01:21

标签: vb.net dll drivers point-of-sale

我正在为我们的POS应用程序使用CD722UN客户显示器。

它带有USB2.0连接和包含驱动程序等的安装包..

现在,我的申请。当我想访问这个驱动程序时该怎么办?

目前我正在使用“CD722UN应用程序”的.dll路径,但可以向客户端OS发送信号等。

    Declare Function opencd722usb Lib "C:\Program\cd7220 USB\cd722dusb.dll" () As Boolean
    Declare Function writecd722usb Lib "C:\Program\cd7220 USB\cd722dusb.dll" (ByRef dataoutput As Byte, ByVal Length As Integer) As Integer
    Declare Function readcd722usb Lib "C:\Program\cd7220 USB\cd722dusb.dll" (ByRef DataInput As Byte, ByVal size As Integer) As Integer
    Declare Function closecd722usb Lib "C:\Program\cd7220 USB\cd722dusb.dll" () As Boolean

我的第一个想法是首先检查设备管理器中是否安装了设备并以某种方式使用驱动程序从那里??? 或
将.dll分发到我们的应用程序文件夹中并使用
searchpath ""installed directory"\cd722dusb.dll"

什么是最佳解决方案?

提前感谢!

1 个答案:

答案 0 :(得分:1)

当您没有关于如何正确执行此操作的文档时,确定如何自己访问设备通常不是一个好主意。有太多的可能性,代码在托管语言中可能非常笨拙。如果供应商已经提供了访问DLL,您甚至可能无法获得任何文档。

如果您只是将DLL复制到与EXE相同的文件夹中,则此DLL可用的几率非常高。首先尝试,在Declare语句中只需要DLL名称。如果遇到问题,请在安装目录中查找可能需要复制的其他DLL。如果您可以在运行时发现路径,则下一个选项是P / Invoke SetDllDirectory()函数。下一个选项是让安装程序将包含DLL的目录添加到系统PATH环境变量中。硬编码路径是你最后的选择。