Thursday, August 26, 2010

Sometimes 64 bit can truly be a pain...

Two things have bitten me in the butt recently.

1.  If you want to do a COM Callable Wrapper for a .Net assembly, you run REGASM on the assembly to create the registry entries that the COM application will use.  On Windows 7 though, that only creates the entries you need for a 64 bit app.  You need to manually add entries for the Wow6432Node subkey so that 32 bit apps can see it too.  Basically it's a copy/paste/search/replace operation on the 64 bit keys.  Just have REGASM generate a file rather than add the entries directly to the registry, add the additional 32 bit entries, and only then execute it so that it loads into the registry.

2.  If you want to register an 32 ActiveX control, you need to make sure that you're using the 32 bit version of regsvr32, which is located in the Windows/SysWOW64 directory.  If you just run regsvr32 at a normal command prompt, you'll get the 64 bit version.  In addition, you need to be running the command shell as the Administrator for the utility to work.  So what you need to do is (a) navigate to the cmd.exe file in Windows Explorer.   (b) Right click and select "Run as Administrator".  (c) Now navigate to the Windows/SysWOW64 directory in the command shell.  And finally (d) run regsvr32.exe passing it the full file path to the ActiveX.

No comments: