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

I first created a PERL script using ActivePerl 5.8.8 Build 819. I then created a Perl EXE using the pp command from the PAR package. Once I compiled my script into an exe when I ran the exe I got the following windows pop up box.
 Processor.exe - Entry Point Not Found. The procedure entry point Perl_Gsv_placeholder_ptr could not be located in the dynamic link library perl58.dll
Then on the command line the following error was given:
Can't load 'C:\DOCUME~1\LOCALS~1\Temp\par-rlife\cache-1212098299\9084e +e3c. dll' for module Win32::OLE: load_file:The specified procedure could no +t be found at D:/cpanrun/build/5-8-0/lib/DynaLoader.pm line 229. at ../blib/lib/PAR/Heavy.pm line 107 Compilation failed in require at script/Processor.pl line 39. BEGIN failed--compilation aborted at script/Processor.pl line 39.

Line 39 of my script is the following:
use OLE; use Win32::OLE qw(in with); use Win32::OLE::Const "Microsoft Excel"; use Win32::OLE::Variant; use Win32::OLE::NLS qw(:LOCALE :DATE);

Can anyone help?
Thanks in advance!

Replies are listed 'Best First'.
Re: Problem Creating and Running Perl exe
by almut (Canon) on Jun 03, 2008 at 20:33 UTC
    at D:/cpanrun/build/5-8-0/lib/DynaLoader.pm line 229.

    That line looks a bit strange.  1) Why does it say 5-8-0 when you're meaning to use 5.8.8?  2) Why does it load DynaLoader.pm from this location anyway? AFAIK, PAR is supposed to create a self-contained package, so it's not meant to pull in stuff from some build directory on another drive... That's what I would start trying to figure out first.

    What exact command did you issue to create the package? Do you have more than one version of Perl installed? Did you have the PERL5LIB environment variable set while creating the package, or do you maybe have it set now when trying to execute the PAR package? Did your pp command in fact run with the right Perl binary (5.8.8)?

    Ok, many questions, no answers :)  But hopefully, attempting to answer them yourself will shed some light on what's going wrong... (my guess would be that you're somehow inadvertently mixing up versions, which could explain why the Perl-internal symbol Perl_Gsv_placeholder_ptr cannot be located). — Good luck!

      Why does it say 5-8-0 when you're meaning to use 5.8.8?

      I've seen this sort of thing happen before with ppm builds of PAR. ActiveState build their 5.8.x binaries using perl-5.8.0, and I think that's how the 5.8.0 dependency creeps in. The various 5.8.x dll's don't all export the same set of functions (for differing values of "x"), and Perl_Gsv_placeholder_ptr is apparently a case in point. (Looks like the 5.8.0 dll does export it, but not the 5.8.8 dll.)

      It has been quite a while since I've seen this issue crop up - so I'm hazy on the details.

      Cheers,
      Rob
Re: Problem Creating and Running Perl exe
by marto (Cardinal) on Jun 03, 2008 at 19:49 UTC
    Hi ralfie,

    Quick question, which version of PAR do you have?

    Martin
      I used the Perl Package Manager to download PAR-Dist 0.19 about a year ago.
        In addition to PAR::Dist (which is now at version '0.31' by the way), which version of PAR are you running? pp is now part of PAR::Packer. You may want to try
        ppm install http://theoryx5.uwinnipeg.ca/ppms/PAR-588.ppd and ppm install http://theoryx5.uwinnipeg.ca/ppms/PAR-Packer-588.ppd
        Then try to recreate your executable.

        Hope this helps

        Update: I do not have access to a windows machine (I am not at work right now) so I can't test this, so let us know how you get on.

        Martin
        I also have PAR 0.9 installed.