perl - solucion - El constructor Win32:: SerialPort va desbordamiento de búfer cuando se da una variable de referencia
desbordamiento de pila (2)
Necesita desreferenciar una variable si es una referencia (pasada como / $ val) para obtener el valor correcto y no su dirección de memoria (puntero).
my $com = "COM".$$portNumVar;
Esto funciona bien:
my $PortObj;
$PortObj = new Win32::SerialPort ("COM12") || die "Can''t open COM/n";
Sin embargo, cuando intento proporcionar una variable en lugar de "COM12" desde TK Entry, así:
my $portNumVar = "12";
my $portNum = $mw->Entry(-justify=>''center'',-width=>''5'',-textvariable=>/$portNumVar)->pack();
Dentro de una subrutina (después de hacer clic en un botón):
my $PortObj;
my $com = "COM".$portNumVar;
print $com;
$PortObj = new Win32::SerialPort ($com) || die "Can''t open COM/n";
Me sale este error:
Win32 :: API :: Call: el parámetro 1 tenía un desbordamiento de búfer en C: /Perlx86_5.16/site/lib/Win32API/CommPort.pm línea 176.
¿Cómo es posible? ¿No debería ser lo mismo?
Gracias, Mark.
Tengo el mismo problema con Wx y Win32 :: SerialPort. En mi caso, esta solución funcionaba: $PortObj = new Win32::SerialPort (eval(qq("$com"))) || die "Can''t open COM/n";
$PortObj = new Win32::SerialPort (eval(qq("$com"))) || die "Can''t open COM/n";