Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Win32::Console::ANSI Not Working in Windows Vista

by roho (Chancellor)
on Feb 18, 2009 at 03:19 UTC ( #744631=perlquestion: print w/replies, xml ) Need Help??

roho has asked for the wisdom of the Perl Monks concerning the following question:

The following code works as expected in Windows XP, displaying colors in CMD window, but I get the error messages below when running in Windows Vista. I am running ActiveState 5.10 and I used ppm to install module Win32::Console::ANSI. I also ran "cpan Win32::Console::ANSI" and it confirmed that the module is up to date. Is there something special that Vista requires for this module to work?

TIA
Roy Fulbright

#!/usr/bin/perl use strict; use warnings; use Win32::Console::ANSI; __END__

I received the following errors:
--------------------------------

Can't load 'C:/Perl/site/lib/auto/Win32/Console/ANSI/ANSI.dll' for module Win32::Console::ANSI: load_file:Invalid access to memory location at C:/Perl/lib/XSLoader.pm line 64. at C:/Perl/site/lib/Win32/Console/ANSI.pm line 65

Compilation failed in require at C:\Bat\ansi.pl line 4. BEGIN failed--compilation aborted at C:\Bat\ansi.pl line 4.

"Its not how hard you work, its how much you get done."

Replies are listed 'Best First'.
Re: Win32::Console::ANSI Not Working in Windows Vista
by jand (Friar) on Feb 18, 2009 at 07:55 UTC
    I haven't looked closely, but I suspect this is due to the way Win32::Console::ANSI is implemented:

    It installs a hook into kernel32.dll for the WriteFile() API and intercepts any bytes written to a console handle to check for ANSI escape sequences. It seems plausible that this heavy-handed method run afoul of improved security mechanisms in Vista.

    You should file a bug report so that the module author can investigate if there is a fix or workaround for this problem.

      It seems plausible that this heavy-handed method run afoul of improved security mechanisms in Vista.

      Yes, that seems plausible. However, I've just built the module (version 1.01) from source on Vista SP1 without any problems. All of the tests ran fine. I used build 1004 of ActivePerl and dmake/MinGW.

      The fact that I'm using SP1 might be significant (unless the op has also installed SP1).

      Cheers,
      Rob
        Yes, I'm also using SP1. I may have to build the module from source as you have done if the alternate repository suggested by Anon does not work out.

        Thanks,
        Roy

        "Its not how hard you work, its how much you get done."

        I've just built the module (version 1.01) from source on Vista SP1 without any problems

        Well ... I *thought* the terminal I was using was connected to a Vista SP1 box, but it was in fact connected to an XP box.

        It turns out I *can't* build Win32-Console-Ansi-1.01 on Vista SP1. I get the same error as reported by the op.

        I'll notify both roho and jand (via /msg) of my embarrassing mistake, and then submit a bug report about this to rt.cpan (unless the bug has already been reported).

        Cheers,
        Rob
Re: Win32::Console::ANSI Not Working in Windows Vista
by Anonymous Monk on Feb 18, 2009 at 04:12 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://744631]
Approved by ww
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2020-10-25 04:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (249 votes). Check out past polls.

    Notices?