这个程序是通过串口向外部设备发送字节数据,然后外部设备返回数据给PC,通讯过程大概就是这样的。
现在碰到一个问题的是:此程序在Win2K中运行良好,而在XP中偶尔会出现通讯中断的现象(经过多次测试得出此结论)。
开发环境是:Win2K+Delphi6的环境。用到了一个Com通讯控件,控件的源码中用到了一些几个API函数,如什么GetOpenFile等(具体记不清了)。
我想知道的是:是不是API函数对XP支持不太好才导致程序在XP中运行出现错误?因为我是在2K环境下开发的。
如果是的话,怎么样解决?谢谢!!!
现在碰到一个问题的是:此程序在Win2K中运行良好,而在XP中偶尔会出现通讯中断的现象(经过多次测试得出此结论)。
开发环境是:Win2K+Delphi6的环境。用到了一个Com通讯控件,控件的源码中用到了一些几个API函数,如什么GetOpenFile等(具体记不清了)。
我想知道的是:是不是API函数对XP支持不太好才导致程序在XP中运行出现错误?因为我是在2K环境下开发的。
如果是的话,怎么样解决?谢谢!!!
解决方案 »
- 有人用过风云压力测试吗,这个东西挺贵的,要2000多块,是真的,还是假的
- 我把所有需要的信息都列出来了 希望大家帮我下 IDHTTP问题 !!
- 我要设计这样的一个功能,可是有点小问题,大家帮帮吗,看是怎么回事?
- sql词句中如何按年度统计,是用什么函数?忘记了,请高手指点一下
- ie
- 我的程序在局域网既可以运行,怎么把它放到广域网里
- NPMS物业管理及操作系统,是程序员尝试跨界的开始。
- 一个由dpr生成的WINMAIN橙黄体怎么加载到一个panel中
- 如何判断服务停止 SOCKET????
- 如何控制窗口的最小化?
- SOS!国外邮件,一堆乱码,如何显形?MM
- activeform生成ocx后的注册问题
在打开通讯口时:CreateFile
送出数据时:WriteFile
读取数据时:ReadFile这些应在XP中也有呀,唉,不知怎么回事?
想当年我用这些API写串口程序,费力不讨好,最后将就能用,当然如何再花功夫也能完善,
后来我就一直用spcomm控件。
winxp 是 winnt 5.1他们兼容的非常好,我想可能是你的xp配置有问题
楼主说的com通讯组件是vc做做地吧?!那怎么用spcomm牙,调用win32 api才是
[1].你可以从网上下载一个串口监视程序,看看你的程序是不是真正的每一次都能把数据从串口中发下来。如果不想从网上下载的话我可以提供,E-mail:[email protected]
[2].你可以看看你用的控件实时监控串口是用的time控件还是用的线程,一般用time控件来实时的话不是太精确。
[3].一般串口控件都有个串口接口清空功能。在执行完一次操作后最好清空一下接口,你发下去的数据可能和原来的数据混在一起了,可能有这方面的因素。(监视程序可以看到)。
[4].串口通讯最关键的只有三个API:打开串口CreatFile,写串口WriteFile,读串口ReadFile
当然还有一个关闭串口CloseFile,我想XP中也会有这些API。
[5].若真有问题的话,我建议你可以换一个控件试试,一般熟悉一个控件的基本操作不会太浪费时间。只要针对性的编写,就可以看出问题来。
这个程序是通过串口向外部设备发送字节数据,然后外部设备返回数据给PC,通讯过程大概就是这样的。
现在碰到一个问题的是:此程序在Win2K中运行良好,而在XP中偶尔会出现通讯中断的现象(经过多次测试得出此结论)。
开发环境是:Win2K+Delphi6的环境。用到了一个Com通讯控件,控件的源码中用到了一些几个API函数,如什么GetOpenFile等(具体记不清了)。
我想知道的是:是不是API函数对XP支持不太好才导致程序在XP中运行出现错误?因为我是在2K环境下开发的。
如果是的话,怎么样解决?谢谢!!!
既然是delphi6应该可以用spcomm呀?
而且spcomm的源码里也是调用的api函数,没有什么区别的,
我以前用vc自己做串口通讯的动态库要点也就是要启动一个接收线程,以便能够读取发送过来的数据。用控件只不过是省事一些,如果楼主觉得哪个地方不合适完全可以自己修改一下,可以在接收线程中触发一些自定义的事件活着消息什么的。而且spcomm的确没有发生楼主说的问题。我在2k下编译的程序在xp下运行也没有什么问题。
(小弟才学delphi不久)