单步下没有问题,说明程序是正确的,两者唯一的不同是访问通讯端口速度快慢的不同。因为端口数据到达过慢无法估算,建议使用mscomm控件的OnComm 事件。
解决方案 »
- vb6用CDO发邮件,邮件主题中的中文字符会变乱码,怎么解决?
- 运行时错误'91':
- pictureBox黑色改为白色,白色改为黑色
- 编译的.exe文件执行完后出现"应用程序错误"?求高人指点
- 求:能修改软件中字符串的工具
- SendMessage 发送多个Edit
- 请问,我在Vb中用Webbrowser打开的powerPoint文档,如何控制它默认得是编辑状态??
- 如何引用 RegExp Object
- 今早一来,多了一个角,高兴ing... 放分...
- 如何屏蔽掉shockwave(flash控件)的鼠标右键事件??
- 送分题!解释语句(详情和分数在以下地方)
- 谁有GetOpenFileName函数的详细说明,谢谢!!!
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then ' 接收到一个字符
'这里插入你的代码,
End If
End Sub
Rthreshold=0时不触发CommEvent = comEvReceive的事件。
如果使用时间机制,请去除轮询端口的代码。
还可以切换Rthreshold的值,混合轮询和事件编程。轮询时要注意添加Doevents调用
另外还要注意你的设备和计算机之间是否存在硬件握手。
CreatFile("COM2",GENERIC_READ OR GENERIC_WRITE,0&,<Null>,OPEN_EXISTING,0&,Null)
结果,出现错误提示“ByDef参数类型不符”,指示光标就停在上面有<>的那个那里,我已经有声明过那个函数自定义参数类型,但是还是不行。为什么?究竟是为什么?明明在VC里都是这样的,而且我有查过关于用VB调用API函数的大把资料,都是如此写的,为什么就是在我这里行不通?????有谁知道,了解,请救救我!!!
Dim Secu As SECURITY_ATTRIBUTES
Secu.bInheritHandle = 0
Secu.lpSecurityDescriptor = 0
Secu.nLength = 12
i = CreateFile("COM2", GENERIC_READ Or GENERIC_WRITE, 0&, Secu, OPEN_EXISTING, 0&, 0&)
DWORD Internal; //保留给操作系统使用,指出系统支持状态
DWORD InternalHigh; //保留给操作系统使用,指出多少个字节已经传输
DWORD Offset; //从第几个字节读写(偏移量,低位),读写通讯设备时不用
DWORD OffsetHigh; //从第几个字节读写(偏移量,高位),读写通讯设备时不用
HANDLE hEvent; //引发文件开始传输事件
} OVERLAPPED;
这些参数都可以置0(调用默认处理),你的邮箱告诉我,我发一份详细一点的参考资料给你