各位大侠,我初学delphi,用spcomm控件有些疑问,还望大侠指点。
网上下载了最新的SPCOMM控件源码,就是修正了COM10以上串口不能用的那个源码,install component时,有如下提示
1) 一些函数SetupReadEvent(),HandleReadEvent()提示PChar类型和PAnsiChar类型不匹配,我于是把这些函数的PChar()类型映射改成了了PAnsiChar()
2)重新编译后,可以成功安装SPComm控件,但是还有两个警告:symbol 'Resume' is deprecated。意思是说Resume函数已经弃用了,建议我用新的线程调度函数。网上查了一下,有的说直接改成Start,有的说改成Mutex来同步。
我现在有如下疑问:
1)这个Resume警告不管的话,是否有潜在问题?
2)我修改的PChar()改成PAnsiChar()是否正确?如果哪位大侠有修改过的经过验证的适用XE2的SPCOMM代码,如果不吝提供一下的话,我也感激不尽,多谢多谢。
网上下载了最新的SPCOMM控件源码,就是修正了COM10以上串口不能用的那个源码,install component时,有如下提示
1) 一些函数SetupReadEvent(),HandleReadEvent()提示PChar类型和PAnsiChar类型不匹配,我于是把这些函数的PChar()类型映射改成了了PAnsiChar()
2)重新编译后,可以成功安装SPComm控件,但是还有两个警告:symbol 'Resume' is deprecated。意思是说Resume函数已经弃用了,建议我用新的线程调度函数。网上查了一下,有的说直接改成Start,有的说改成Mutex来同步。
我现在有如下疑问:
1)这个Resume警告不管的话,是否有潜在问题?
2)我修改的PChar()改成PAnsiChar()是否正确?如果哪位大侠有修改过的经过验证的适用XE2的SPCOMM代码,如果不吝提供一下的话,我也感激不尽,多谢多谢。
现成的资料一大堆,控件也可直接用。
D2006应该就可以了。实在不行用D7,其实这两个版本用的人还是相当多的。
如果说支持XE2的话,那应该也不会出现安装时就有类型有误的提示吧
现在用XE2的人还不多,建议楼主自己用spcomm做几个简单的例子,如果可以正常使用的话不就OK了
之前有个项目搞死我了. 它默认是true的.
我用spcomm测试了一下,有如下问题:
1)发送的时候是按WideChar发送的,也就是如果我传递给WriteCOMData()的数据时0x01,0x02,0x03的话,它发出去的是0x01,0x00,0x02,0x00,0x03,0x00。也就是按照WideChar的方式来发送的。这是有问题的。
2)基本发送/接受逻辑看起来是正确的。另外老实说,做了这么多年技术,我是比较排斥靠尝试来判断东西是否好用的,因为那样风险太不可控。理想的方式是我自己review一下代码,来判断代码是否完善,可惜我从学delphi语法到现在大概还不到10天,所以才想找一些经过大家实践检验的的稳定的代码来做。看来只能靠自己从review SPCOMM的代码入手了。