Many of you might be familiar with the complex set of problems when different versions of deployed non-managed DLLs end up in serious conflicts. I was pleased to see that this era ended with the introduction of the Microsoft .NET Framework. We at TX Text Control realized very early that .NET is the future for Windows based applications and presented our first .NET version back in 2002.
Nevertheless, there are still millions of legacy ActiveX applications and they are still maintained and developed further. TX Text Control was originally released in 1991 starting off as a single DLL and has made its way through 16-bit DLL, VBX and OCX versions to today's Microsoft .NET version. We are convinced that WPF will be the successor of Windows Forms and therefore, we started early to develop a Windows Presentation Foundation version that will be released this year.
But this doesn't imply that we won't support our ActiveX users anymore. Therefore, I am happy that Microsoft offers a solution for the 'DLL-hell' in non-managed applications since Windows XP. Not all problems are solved and it is still better to upgrade to the .NET platform, but it is at least a solution.
The magic word is registration-free COM. The idea behind this technology is that each application uses their own set of DLLs that are not longer globally shared. In other words: An ActiveX control must no longer be registered.
Technically, this is quite easy. To deploy an application based on TX Text Control ActiveX, you just have to copy the TX Text Control redistributable files to the same folder like the executable. Additionally, a manifest file must be created in the same directory which declares the dependency on TX Text Control. The filename of the manifest file must be the same like the executable + ".manifest". For example:
A sample manifest file can be viewed here:
If your project is based only on TX Text Control ActiveX and doesn't contain further ActiveX controls, you can use the above manifest file without any changes. You just need to adapt the filename to match your executable name and your are all set.
Feel free to contact me, if you have any questions about this process.