On Sun, 05 Feb 2012, Francisco Zarabozo wrote: > Hello All, > > But when trying it over Perl 5.12 x64, it prints: > > Error loading object: Win32::OLE(0.1709) error 0x80040154: "Clase no > registrada" (spanish for "Class not registered") > > > Of course, the class IS registered as you can see on the 32 bit Perl > execution. > > I'm guessing this has to do with 32 bit and 64 bit DLLs and that > Win32::OLE works with 32 or 64 bit registrations/DLLs accordingly to > whether you are using a 32 or 64 bit version of Perl. But, I'm just > guessing and I'm not really sure about what the problem is or how to > solve it.
Yes, that is correct. You cannot load a 32-bit DLL into a 64-bit process. Your best option forward would be to obtain a 64-bit version of your COM component. Failing that, you could try to host the 32-bit component in a surrogate host process, and then let COM do the inter-process marshaling, which will automatically take care of the 32/64 bit conversion as well. It will be a lot slower than running the component in-process though. Configuring COM components manually is not for the faint-of-heart though, but if you want to try it, here is a link to a mirror of an article that pretty much describes what you would have to do. http://www.scribd.com/doc/56629579/64-Bit-Insider-Volume-1-Issue-7 Note that you may very well hose your system if you are not careful, so only do this if you are either very comfortable with the information in the article, or if you don't mind reinstalling your system if anything goes wrong... Cheers, -Jan _______________________________________________ ActivePerl mailing list ActivePerl@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs