程序用了dll后不能正常关机,调试运行中关闭程序vb不能自动退出调试运行状态.
解决方案 »
- 倾家荡产,高分求图片处理!请速度了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 如何用给QQ发送框发送粘贴动作
- [手头没有书和MSDN]文件打开以Append方式的Open File怎么写??
- 请问为什么我的软件在某些人的系统运行会出现下列错误?
- 50分求助:远程控制即pc anywhere 的原理是什么,怎么做一个类似的?
- 如何在指定的1.dat二进制文件中查找字符6666并返回它头一个字符所在地址,
- 我用vb自带的打包程序生成安装文件,安装出现如下错误:
- VB 使用ShellExecute()打印Excel文件后,如何自动关闭Excel文件
- Toolboxs与imagelist问题,火急!!
- 如何阻止从 DataGrid 更新数据库?(好象很难)
- 求有关数字排序的SQL语句(0123->1230)
- 怎样才能将图片列表框与Toolbar控件绑定?
是否用到了Hook?
VB下使用串口控制顾客显示屏程序加载api_com.dll文件出现
问题1:调用com_init后 第一次com_send无效以后都有效
问题2:调用com_rest后 再用com_init顾客显示屏无效(不变化),必须要拔出com口再插回去重新检测.
使用VB编程的人员如果需要在Windows下使用串口控制顾客显示屏或串口打印机,有很多种方法,可以使用OCX控件也可以使用动态连接库的方法。我们这里提供两种方法:
一种是使用动态连接库:
添加一个bas模块,在其中写入调用外部动态库的方法:
Public Declare Function com_init Lib "api_com.dll" (ByVal com As Integer, ByVal baud As Integer) As Boolean
Public Declare Function com_send Lib "api_com.dll" (ByVal buf As String, ByVal lens As Long) As Boolean
Public Declare Function com_rest Lib "api_com.dll" () As Boolean
Com_init(1,2400)是打开串口进行通讯,1是打开COM1,波特率为2400。如果打开成功,它会返回逻辑真告知串口打开。
Com_rest是关闭串口。
Com_send(命令,长度)是发送数据到串口。
下面语句就是控制顾客显示屏开钱箱的命令,其他的命令集只需要改变PDStr的值即可:
Private Sub CmdSend_Click()
PDStr=Chr(2)+Chr(77)
If com_send(PDStr, Len(PDStr)) Then
MsgBox ("send ok")
Else
MsgBox ("Send err")
End If
End Sub
下面是控制顾客显示屏显示1234.56的命令:
Private Sub CmdSend_Click()
PDStr=Chr(27)+Chr(81)+Chr(65)+”1234.56”+Chr(13)
If com_send(PDStr, Len(PDStr)) Then
MsgBox ("send ok")
Else
MsgBox ("Send err")
End If
End Sub
下面是控制顾客显示屏显示“总计”灯的命令:
Private Sub CmdSend_Click()
PDStr=Chr(27)+Chr(115)+”2”
If com_send(PDStr, Len(PDStr)) Then
MsgBox ("send ok")
Else
MsgBox ("Send err")
End If
End Sub
如果需要控制串口的POS58打印机打印,也只需要重新给PDStr赋值:
PDStr=”VB Printer on COM1”+Chr(10)
要串口POS58开钱箱,则需要如下赋值:
PDStr= Chr(27)+”p”+Chr(0)+Chr(60)+Chr(255)
造成数据的阻塞,无限的等待状态.
造成数据的阻塞,无限的等待状态.
请问如何设置timeout?
com_rest放在程序退出前执行com口工作正常了
但就是无法正常关闭程序....(程序窗口全部关闭任务管理器中程序还在)
请问这个要怎么解决?期待~