Delphi使用SPCOMM串口通信 串口号大于10出错的解决办法

用Delphi 7.0编写串口读写程序,发现有些串口无法打开,打开出错。“Error opening serial port”。

经过百度查询有参考文章解决,复制内容过来如下:

如果你已经会使用SPCOMM且出现10个以上的串口问题

请改一下串口名

COM1.CommName='//./com18';

就这样 加'//./'就行了我也不知道什么回事.......

比如

Comm1.CommName := '//./'+ComboBox1.Text;

===============================================

//./com18是windows里边的SymbolLinkName,这个在WINAPI里边就需要这 样写,SPCOMM的这部分的源代码如下: 
procedure TComm.StartComm; 
var 
   hNewCommFile:   THandle; 
begin 
     // Are we already doing comm? 
     if (hCommFile <> 0) then 
        raise ECommsError.Create( 'This serial port already opened' ); 

     hNewCommFile := CreateFile( PChar(FCommName),                 & lt;------就是这里,要加上//./ 
                                 GENERIC_READ or GENERIC_WRITE, 
                                 0, {not shared} 
                                 nil, {no security ??} 
                                 OPEN_EXISTING, 
                                 FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED, 
                                 0 {template} ); 
  
     if hNewCommFile = INVALID_HANDLE_VALUE then 
        raise ECommsError.Create( 'Error opening serial port' );     
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^如果不是 SymbolLinkName写法,串口号大于9这里就出错了

原文链接:

http://blog.sina.com.cn/s/blog_14c50030e0102y900.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值