已解决 只需更新 Windows 10,问题就会消失
我有一个用 Delphi 7 开发的旧程序,并使用 TComPort 进行串行通信。
在 Windows 10 TComPort 上枚举端口错误,它不返回端口号。
该程序从 windows xp 到 windows 8.1 u1 都能完美运行
所以 Windows 10 和 TComPort 之间存在不兼容,设置兼容性,或者以管理员身份运行程序不会改变任何东西。
我该如何解决?我必须使用另一个库进行串行通信吗?
这是我做过的一个测试
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CPort;
type
TForm1 = class(TForm)
ComPort1: TComPort;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var List:TStringList;
sPortName:String;
I:integer;
begin
List := TStringList.Create;
try
EnumComPorts( List );
For I := 0 to List.Count-1 do
begin
sPortName := Trim(List[I]);
Memo1.Lines.Add(sPortName);
end;
finally
List.Free;
end;
end;
end.
这是结果
字符串“sPortName”的长度为 3 个字符。