これはうまくいきます:
my $PortObj;
$PortObj = new Win32::SerialPort ("COM12") || die "Can't open COM\n";
ただし、TK エントリから「COM12」の代わりに変数を提供しようとすると、次のようになります。
my $portNumVar = "12";
my $portNum = $mw->Entry(-justify=>'center',-width=>'5',-textvariable=>\$portNumVar)->pack();
サブルーチン内 (ボタンクリック後):
my $PortObj;
my $com = "COM".$portNumVar;
print $com;
$PortObj = new Win32::SerialPort ($com) || die "Can't open COM\n";
次のエラーが表示されます。
Win32::API::Call: C:/Perlx86_5.16/site/lib/Win32API/CommPort.pm 行 176 でパラメータ 1 にバッファ オーバーフローがありました。
それはどのように可能ですか?それは同じであるべきではありませんか?
ありがとう、マーク。