tutorial solucion programacion pila example desbordamiento contramedidas camara perl variables serial-port tk buffer-overflow

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";