I have installed Win32::OLE with cpan notest install Win32::OLE.
That worked without a hitch.
I created a powershell script (try.ps1) that uses the add method:
$excel = new-object -comobject Excel.Application
$excel.visible = $true
$workbook = $excel.workbooks.add()
The command: powershell -file try.ps1 displays an excel workbook with 1 worksheet when executed in the cygwin environment
So, unless powershell has security magic, scripts can do this, there is enough memory and disk space.
I created an equivalent perl script (try.pl):
#!/usr/bin/perl -w
use strict;
use Win32::OLE;
my $ex = Win32::OLE->new('Excel.Application', \&Quit);
$ex->{visible} = 1;
print "S1 .. "; sleep 10; print "Done.\n";
my $book = $ex->Workbooks->Add();
print "S2 .. "; sleep 10; print "Done.\n";
exit;
The sleep statements makes what happens visible. Otherwise the script just finishes with the error message below.
The command: perl -w try.pl displays an empty workbook. There is no worksheet displayed.
The workbook closes when the script finishes and the following is displayed:
S1 .. Done.
OLE exception from "Microsoft Excel":
Microsoft Excel cannot open or save any more documents because there i
+s not
enough available memory or disk space.
¢Æ To make more memory available, close workbooks or programs you no l
+onger
need.
¢Æ To free disk space, delete files you no longer need from the disk y
+ou are
saving to.
Win32::OLE(0.1709) error 0x800a03ec
in METHOD/PROPERTYGET "Add" at try.pl line 11
S2 .. Done.
So it appears that Add has a problem in my environment.
I don't believe the message is disk space or memory related, there is heaps of both as I posted earlier in this conversation. And I would expect the poweshell script to have the same problem. But that script runs fine.
I inspected the cpan make compile output, which I noticed had many warnings. All the same but for the location:
OLE.xs:5764:39: warning: deprecated conversion from string constant to
+ ¡®char*¡¯ [-Wwrite-strings]
It's only a warning. Could it lead to my problem?
Suggestions welcome.
|