PDA

View Full Version : COM, DLL, GAC and TLB



wiggers
11-26-2012, 05:52 AM
I have a DLL with COM interfaces that isn't self registering. Its TLB file is used as a reference in Excel. At the moment in InstallShield I have one component to put the DLL in the working folder, one to put the DLL in the GAC and one to put the TLB file in the working folder with a COM Registration property set to its GUID. This all works fine for 32-bit installations but not x64.

In the help notes for COM Registration it says using the Typelib Table is deprecated, but I can't see any other way of doing it. Using the Component Wizard for the DLL doesn't create the correct registration for the Typelib and the Excel Reference seems to need the TLB file.

Any thoughts?

hidenori
11-27-2012, 11:24 AM
You might want to try using InstallShield self-registration (ISSelfReg) (http://helpnet.flexerasoftware.com/installshield19helplib/Default.htm#StartTopic=helplibrary/ISSelfReg.htm) to register your TLB file. To install 64-bit type library, select Yes for the 64-Bit Component setting of the component that is associated with the file.

For more information, see Self-Registration Methods (http://helpnet.flexerasoftware.com/installshield19helplib/Default.htm#StartTopic=helplibrary/SelfRegistrationCOMServers.htm) and Targeting 64-Bit Operating Systems (http://helpnet.flexerasoftware.com/installshield19helplib/Default.htm#StartTopic=helplibrary/IHelp64BitSupport.htm).

wiggers
11-28-2012, 07:30 AM
The DLL is not self-registering. Somehow InstallShield registers it correctly for 32bit installation but not for a 64bit platform.

wiggers
11-30-2012, 04:46 AM
I've managed to get this working now. But every time the dll is revised I have to delete the component for the TLB file and recreate it.