Using Win32::OLE on 64 Bit Windows
am 23.01.2007 13:01:55 von ant_howell
Hi
Has anyone encountered problems with using the Win32::ole perl module
on a 64bit version of Windows?
I have some scripts which run perfectly on 32bit Windows but I am
getting
Win32::OLE error 0x80040154: "Class not registered"
when attempting to use code such as
CreateObject Win32::OLE('ScriptingLib.Collection');
(where ScriptingLib.Collection is part of the COM interface I am trying
to use.)
If I create the similar code in VBScript, all works fine. This seems to
be a 64bit issue.
Has anyone had any similar issues and if so, has anyone got any
resolutions to this problem.
I am using ActiveState Perl version 5.8.7. Although this is the 32 bit
version of Perl, I am not aware of any changes to the Win32::ole in the
64bit version hence why I am using the 32 bit version.
Any help will be appreciated.
Regards
Anthony
Re: Using Win32::OLE on 64 Bit Windows
am 23.01.2007 16:56:07 von ant_howell
Hi
This issue has now been resolved by installing the Active State 64bit
version of Perl.
Regards
Anthony
Anthony wrote:
> Hi
>
> Has anyone encountered problems with using the Win32::ole perl module
> on a 64bit version of Windows?
> I have some scripts which run perfectly on 32bit Windows but I am
> getting
>
> Win32::OLE error 0x80040154: "Class not registered"
>
> when attempting to use code such as
>
> CreateObject Win32::OLE('ScriptingLib.Collection');
> (where ScriptingLib.Collection is part of the COM interface I am trying
> to use.)
>
> If I create the similar code in VBScript, all works fine. This seems to
> be a 64bit issue.
>
> Has anyone had any similar issues and if so, has anyone got any
> resolutions to this problem.
> I am using ActiveState Perl version 5.8.7. Although this is the 32 bit
> version of Perl, I am not aware of any changes to the Win32::ole in the
> 64bit version hence why I am using the 32 bit version.
>
> Any help will be appreciated.
>
> Regards
>
> Anthony
Re: Using Win32::OLE on 64 Bit Windows
am 25.01.2007 16:39:56 von Andy
I've used Win32::OLE on windows NT/2000/XP and windows server 2003 for
calling MS Word 97/2000/2003, MS Excell 97/2000, and MS Access 97/2000
successfully. I don't know for sure, but I think XP is a 64bit OS. In
XP, you can force programs to run under older window models by right
clicking the executible's icon, selecting properties->compatability and
checkmarking compatability mode and selecting the windows OS you wish
to emulate for that particular executable.
I know that the .NET framework has a new programming paradigm where
..dlls no longer are entered into the windows registry. It could be
what you are trying to call via OLE really isn't registerd in the
windows registry (because its written in .NET), and the Win32::OLE is
reporting that it can't find the scripting library in the windows
registry.