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

Is the Win32-OLE-CrystalRuntime-Application module compatible with the latest versions of Crystal (2011, 2013)?

I have a Win32 GUI program that got forced onto a new server (both old&new are 64-bit Windows Server 2008 R2). By installing Perl, and all of the needed modules, I got the GUI part to work, but the Crystal export-to-pdf code fails. I stepped it through in debug, and when Win32-OLE attempts to create a Crystal Application object, it has no luck.

Win32::OLE(0.1711) error 0x800401f3: "Invalid class string" at C:/Perl64/site/lib/Win32/OLE/CrystalRuntime/Application.pm line 123.

The old server had Crystal 2008, so tried installing that to see if it would play nicely, but still a fail.

Replies are listed 'Best First'.
Re: CrystalRuntime compatibility
by Anonymous Monk on Dec 04, 2014 at 05:31 UTC
      I know what the Invalid Class String is - it's "Crystal Application" passed by Win32-OLE, which is called by the CrystalRuntime module. Apparently, that's now unrecognized.
Re: CrystalRuntime compatibility
by Anonymous Monk on Dec 04, 2014 at 18:04 UTC
    Looking at this line-number at least in the CPAN source archive copy of that module, the line in question simply reads:
    die(Win32::OLE->LastError) if Win32::OLE->LastError;

    Therefore it seems that the problem might be more generalized... not Perl specific, not specific to the module (which does not, itself, contain the string constant in question). Google-searches show many examples of this problem and suggestions that you should go to the Registry to see what the class-string is actually called. (Maybe it changed.) Also many cases in which the issue was found to be specific to a particular machine.